- - PR -
Qmail + Vpopmail が正しく動作しない
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-10-01 01:25
こんばんは、今更なのですが…。
・STMPサーバとして利用するクライアントは、インターネット上の不特定IPアドレス という状況、ということで O.K. でしょうか? そうでない ( 特定のIPアドレスからのみ ) ならば、敢えて POP before SMTP を使わずとも、SMTP担当の tcpserver の使用する cdb ファイルに、然るべき IPアドレスを登録しておけば済む問題ですので…。 一応、念のため。 | ||||||||||||||||
|
投稿日時: 2005-10-01 05:08
angelさま
非常〜に有用な情報どうもありがとうございます。 angelさまの起動スクリプトの説明と、relay-ctrlの機能を一読すると なるほど。と思わずうなずいてしまいました。 現在の起動スクリプトのプロセスでは、POPbeforeSMTPの機能に うまく絡み合っていないないかもです・・。 一読しまして、需要な事がひとつ・・。 relay-ctrlをインストールする際に、daemontoolsが不可欠という 条件があったのですが、実は何故かdaemontoolsでこのマシンは 引っかかっており、daemonがうまく動作してくれません。 具体的に言うと、daemontoolsをインストールした後に マシンを再起動すると正常に起動しなくなる、というものです。 正常に起動しなくなるというのは、/etc/inittab内のSV:123456:respawn:/command/svscanbootコマンドで引っかかっているのか サーバーを起動させると、このエラーの為にシステムが全体的に重くなり 他のプロセスbindやデスクトップシステムが立ち上がらなくなります。 この場合、/command/svscanbootには --------------------------------------------- #!/bin/sh # WARNING: This file was auto-generated. Do not edit! PATH=/command:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin exec </dev/null exec >/dev/null exec 2>/dev/null /command/svc -dx /service/* /service/*/log env - PATH=$PATH svscan /service 2>&1 | \ env - PATH=$PATH readproctitle service errors: ------------------------------------------------ のようにdaemonプロセスによって自動記述されておりますが、 この状態で、/service ディレクトリを削除または/-service等に名前変更し システムを再起動かけると(/etc/inittabの記述はそのまま)、 もちろん次回再起動時にdaemontoolsは正常起動しませんが、システムは正常に立ち上がってきます。 /command/svscanbootを元に、/serviceを読みに行ってるだけのはずなんですが、 おかしなところでつまずいてしまっておりました。 bash-3.00# ls -l / . . drwxr-xr-x 2 root 1992 512 10月 1日 03:36 service drwxr-xr-x 2 root root 512 9月 4日 18:26 command . . 実行権はこんな感じでも駄目でした。 今回どうしても今週中にメールサーバーを組み上げないといけなかった為、 このdaemontoolsの問題に嵌ってしまう時間もなかった為、 通常どおりに起動スクリプトを書いて起動させる方法でqmailをインストールする事になってしまったのです。 横道にそれてしまいましたが、relay-ctrlをインストールすれば 現在問題視されているPOPbeforeSMTPの問題も解消されそうですし 是非インストールしてみたいのですが、それには まず、はやりdaemontoolsと向き合う必要があるようです。 daemontoolsで、qmailまわりのプロセス、Log、relay-ctrl等を管理できれば それが理想ですので・・・。 >・STMPサーバとして利用するクライアントは、インターネット上の不特定IPアドレス >という状況、ということで O.K. でしょうか? >そうでない ( 特定のIPアドレスからのみ ) ならば、敢えて POP before SMTP を使わずとも、SMTP担当の tcpserver の使用する cdb ファイルに、然るべき IPアドレスを登録しておけば済む問題ですので…。 こちらのメールサーバーの利用者の中で、モバイルに通信による利用も予定にありますので、現状ですと、POP before SMTP が望まれる状況です。 | ||||||||||||||||
|
投稿日時: 2005-10-01 07:59
おはようございます。
確かに、一寸見た感じだと、「relay-ctrl Ver.3からは daemontoolsが必須」と色々出ているようですが…、 これは、daemontoolsに含まれる便利ツールの一つである envdir が必要、ということでは無いのでしょうか? daemontools の核となる ・supervise … サービス起動・停止や自動復帰を司るプログラム ・svscan … supervise の自動起動を司るプログラム が必要になるとは、どうしても考え辛いのですが… 上手く動作しないなら、svscanboot 使わなくても良いのではないかなぁ…、と思います。 一応、本家も見てみましょうか…
うーん…。やっぱり envdir が入っていれば済むような気がします。 さて、svscanboot のトラブルシューティングをするなら、 ・svscanboot は、inittab の最後の行に入っているか ( sysinit や rc や mingetty の前だと、トラブル時に足を引っ張られる ) ・svscanboot 内の “exec>/dev/null” を “exec>>何かログ”に替えてログを採って見てはどうか ( 更に exec 2>/dev/null は exec 2>&1 ですね ) ・加えて、| env 〜 readproctitle … を止めてはどうか ( readproctitle がパイプ経由でログを吸収してしまいますから ) ・更に、svc が原因かどうか切り分けるために、svc -dx 〜 の行を消して動作を比較してはどうか ( 初回の svscanboot では svc で残存 supervise を止める必要が無いため ) 位でしょうか… | ||||||||||||||||
|
投稿日時: 2005-10-01 17:49
私にはすでに解らなくなっているので閲覧に廻っています。
一応、解る部分については、補足させていただこうと。
こちらについては、angel様ご指摘のように、envdirが必要であり、 supervise や svscan の使用については、別に必須ではございません。 実際に、supervise や svscanの使用はせずに構築したことがありますので。 現在テストマシンの空きがないので、試せない… ちなみに虎エモンさまの環境を教えていただけますか? daemontoolsのスレにも載っていなかったようなので。 ありえるかどうかはわかりませんが、SELinux関係とかはないよな・・・とふとよぎったもので。 (SELinux触ったことまだなんもんで) #angel様、話ぶったぎってしまって申し訳ないです | ||||||||||||||||
|
投稿日時: 2005-10-01 20:49
Angelさま、Kalzeさま
ご返信ありがとうございました。 只今帰宅しました。 まず、はじめに・・・今確認したところ /etc/inittabのsv内容が、一番下に来ていなかったので、 最下部に記述しなおし、/-service を/serviceに変更して システムを再起動してみたところ。 「問題なくシステムが上がってしまいました・・・ もしかしたら、この問題の為に今までシステムが不安定になって 起動が正常に行われなかったのでしょうか・・; それはともかく、Angelさま、ありがとうございました^ これでうまくいくようでしたら、もう一度、 /service /supervise近辺を作り直してみて、qmailの起動が正常に行えるか やってみたいと思います。 これから食事をとった後にすぐ始めてみます^ Kalzeさま、一応当方今2つの機器に同時にインストールを行っていました。 こちらの環境は、TurboLinuxベースのLinux(openblocks系)とSolaris10に インストールを試みています。 正常運営はSolaris10サーバー、バックアップ機として、TurboLinuxにて対応できるように まったく同じ設定で同時にインストール作業を行ってきましたが、 それが原因か、両方で同じエラーが出て先に進めなくなってしまっていたのです。 relay-ctrlはdaemontoolsが不可欠ではない、envdirがポイントという事ですね・・。 簡単ですが、訳してみました。。 relay-ctrlのNEWSより Changes in version 3.0 - Removed all CDB management code in favour of doing the check in a new program, relay-ctrl-check, which is a front-end to qmail-smtpd. relay-ctrl導入により、smail-smtpdの作業を代行するので、既存のCDBを参照するための スクリプト等は全て不使用にする。 - Added a client-server pair for transmitting relay authorization information over UDP. UDPを介して、ユーザー、サーバー間のrelay制御の為の認証を行う(あってるのかな・・) - All configuration information is now read from environment variables. 設定情報は"enviroment cariables"を参照のこと(?) - Running relay-ctrl-age is no longer *required*, but still recommended. relay-ctrl-ageはの使用は推奨はしますが、これからは絶対必要条件ではありません。 - The RPM no longer tries to add itself to any qmail control files. RPMによるqmailへのパッケージインストールは出来ません。 てなところでしょうか・・・(少し不安ですが。) [ メッセージ編集済み 編集者: 虎エモン 編集日時 2005-10-02 00:03 ] | ||||||||||||||||
|
投稿日時: 2005-10-02 00:42
やはりどこかおかしいようです・・・。
/service /command /package /var/qmail/supervise を削除し、/etc/inittab の記述を削除し http://www.atmarkit.co.jp/flinux/rensai/qmail09/qmail09a.html を参照しながら、daemontoolsのインストを1からやり直して みたのですが、インストール後に、kill -HUP 1をしようが、 サーバーを再起動させようが、 ps -ef|grep svscan 等で確認をとるとプロセスはまったくたち上がっていません。 | ||||||||||||||||
|
投稿日時: 2005-10-02 08:38
おはようございます。
kalzeさん、ありがとうございます。 やはりそうでしたか…。経験ある方からの情報が得られるのは心強いです。 ※qmailやdaemontoolsはともかく、私は relay-ctrlの経験は無く、推測しかできないので…
なので、そんな事は仰らずに。色々コメントが出るのは私としては大歓迎です。 ※いや、話の流れを押さえているのは、スレッドを立てた虎エモンさんなので、私が申し上げる事ではないですけど。
/etc/inittab 内のエントリの順番が絡んでいましたか…。 この順番は、そのままプログラム起動の順番にも絡むので、大物は最後の方が良い、という感覚を持っています。 ( X の起動なんかも最後の方にありますし )
svscan は必須ではないと、kalzeさんから情報も上がっていますし、最悪使わなくとも良い、ということで気楽にいくことをお勧めします。( システムの要件にもよるでしょうけど ) 前に記した svscanboot のトラブルシューティング法は、まだ使えると思いますよ。 ↓も参考になるやもしれません。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=24365&forum=10 | ||||||||||||||||
|
投稿日時: 2005-10-02 23:02
Angelさま、Kalzaさま 色々ありがとうございます。
まずは報告を。 daemontoolsなのですが、仰るとおり、動かなかったら envdirのだけを使用して解決しようとおもってましたが、 /etc/inittab の表記を SV:123456:respawn:/command/svscanboot >/dev/msglog 2<>/dev/msglog </dev/null のように変更したら、 bash-3.00# ps -ef|grep svscan root 582 1 0 18:25:14 ? 0:00 /bin/sh /command/svscanboot root 587 586 0 18:25:15 ? 0:00 svscan /service とうまく上がってしまいました。 TurboLinuxとSolarisを平行して作業してましたが、 Solarisの方はどうも、svscanを起動させるのに、 >/dev/msglog 2<>/dev/msglog </dev/null の追記が必要だったようです。 これを行った後に、TurboLinuxの方でも全てを削除して再インストールしてみると 上記のコマンドなしで、 SV:123456:respawn:/command/svscanboot でうまく立ち上がってしまいました。(なんともお騒がせな・・;;) トラブルに陥った原因に @Solaris → TurboLinux の順で作業をしていたのでSolarisに引っかかった時点で復旧作業に嵌ってしまい、TurboLinuxの方の確認がとれていなかった。 ADaemonToolsのインストールは、SolarisとLinuxでは/etc/inittabの記述に変更が必要という事を知らなかった。 というのがありましたが、もしLinux側から作業を行っていれば、解決がもう少し早かったのかもしれません^^; さて、本題ですが、 現在サーバーには、晴れてdaemontools ,relay-ctrl ,qmail ,vpopmail ,その他(qmail関係)がインストールされましたが、 現在qmail等は、daemontoolsを使用しないで、init.d経由でrc.dに記述して立ち上がっております。 (/etc/init.d/qmail → rc.d) そこで、relay-ctrlをインストール後、/etc/init.d/qmail内の起動項目 を以下のように修正して #FOR SMTP /usr/local/bin/envdir /etc/relay-ctrl /etc/relay-ctrl-chdir tcpserver -H -R -l $HOSTNAME -v \ $QMAILDUID -g $QMAILDGID 0 smtp \ /usr/local/bin/relay-ctrl-check \ /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 & #For POP3 /usr/local/bin/envdir /etc/relay-ctrl relay-ctrl-chdir /etc/relay-ctrl tcpserver -H -R -l $HOSTNAME -v 0 pop3 \ /var/qmail/bin/qmail-popup $HOSTNAME \ /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d ./Maildir/ 2>&1 | /var/q mail/bin/splogger pop3d 3 & 起動しなおしたところ、現在正常に動作しているようです。^ 一応しばらくはテスト期間として稼動させてみようかと思います。 (何も問題がおきない事を願いつつ。。。) 私は、明日から1週間ほど出張にでる予定があり、 以前のホスティングの会社との契約が9月末日で切れてしまっていた為、 どうしても本日までにサーバーを設置しないと、 月曜よりクライアントがメールをまったく使えない状態になってしまうところでした。 なんとか思うようにサーバーが稼動してくれました、 本当に皆様方のお陰です。私もはやくアドバイスが出来る立場になれるよう 努力しなければいけません。。^^; 詳しく、親切なアドバイス本当にタメになりました。 ありがとうございました! |