- - PR -
qmailの起動スクリプトがうまく動作しない
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-08-02 03:30
はじめまして。
こちらの連載の記事を読みながらqmailのサーバーを設定しています。 「第1回 qmailによるSMTPサーバの構築」までは問題なく動作が チェックできましたが、「第2回 POP/IMAPサーバの構築と不正中継対策」で 2ページの/bin/checkpasswordインストール後のスクリプト修正後、 qmail起動の動作がおかしくなりました。 具体的には、/etc/init.d/qmail start を実行すると、 starting qmail. [1] 11644 tcpserver: status: 0/40 ここまでがコンソールで出力された後、プロンプトに処理が戻りません。 システム起動時に自動起動設定にすると、starting qmailのまま止まってしまいます。 /var/log/messageには、該当する時刻には以下のログが残っていました。 Aug 2 03:24:26 ns smtpd: 1091384666.227428 tcpserver: status: 0/40 qmailをstopさせたあと、pop3, smtpそれぞれのポートをtelnetでアクセスしましたが 問題ありませんでした。 この場合、どの設定を疑うべきでしょうか? インストールした環境は、RedHat Enterprise Linux WS3.0です。 |
|
投稿日時: 2004-08-02 09:36
こんにちは。
現状ではちょっと情報が少ないので回答しにくいですね。 よろしければ書き換え後の起動スクリプトを提示してみてください。 たぶん記述ミスがありそうな気がするのですが。。 |
|
投稿日時: 2004-08-02 16:28
綾瀬さん、早速のご連絡ありがとうございます。
以下にスクリプトを引用しました。 qmaildのUIDとnofileのGIDは確認済みです。 (第1回の起動スクリプトの時点で正常に動きました。) よろしくお願いします。 ------------------以下、スクリプトになります---------------------- # qmail: /var/qmail PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin [ -f /var/qmail/rc ] || exit 0 case "$1" in start) # Start daemons. echo "Starting qmail." csh -cf '/var/qmail/rc &' tcpserver -v -u [503] -g [504] -x /etc/tcp.smtp.cdb \ 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 & tcpserver -v 0 pop3 /var/qmail/bin/qmail-popup xx.xxxx.com /bin/checkpassword \ /var/qmail/bin/qmail-pop3d Maildir 2>&1 \ | /var/qmail/bin/splogger pop3d 3 & echo touch /var/lock/qmail ;; stop) # Stop daemons. echo "Shutting down qmail." PID=`/bin/ps -aefw | grep qmail | awk '{print $2}'` if [ ! -z "$PID" ] ; then /bin/kill ${PID} 1> /dev/null 2>&1 fi echo rm -f /var/lock/qmail ;; *) echo "Usage: S99qmail {start|stop}" exit 1 esac exit 0 |
|
投稿日時: 2004-08-02 17:39
option の括弧[] は不要ではないですか。 tcpserver -v -u [503] -g [504] を tcpserver -v -u 503 -g 504 と記述したらどうでしょうか。 http://www.emaillab.org/djb/tcpserver/index.html あたりも参考になるかもしれません。 |
|
投稿日時: 2004-08-02 22:55
NeXTさん、ご指摘ありがとうございます。
早速確認してみました。 > option の括弧[] は不要ではないですか。 > cpserver -v -u [503] -g [504] > を > tcpserver -v -u 503 -g 504 > > と記述したらどうでしょうか。 カッコを外してみましたが、結果は変化なし。。。でした。 ご指摘のURLも確認してみます。 |
|
投稿日時: 2004-08-03 01:58
経過報告です。
# /etc/init.d/qmail start Starting qmail. [1] 1288 tcpserver: status: 0/40 この状態でプロンプトに処理が戻らない状況は変化ありません。 ただ、telnet接続にて、pop3, smtpそれぞれのポートにlocalhost上で アクセスをしてみたところ、smtpについては起動しているようです。 # telnet localhost 25 Trying 127.0.0.1... Connected to localhost (127.0.0.1). Escape character is '^]'. 220 mail.xxxx.com ESMTP # telnet localhost 110 Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection refused ちなみに、RedHat Enterprise WS3.0(Pentium4 2.4Ghz)だけでなく、 PowerPC(G3 300Mhz)上で動作しているVineLinux2.6にもインストールしていますが、 現状でプロンプトに処理が戻らない状況も、smtpだけは起動している 状況も全く変わりません。 同じ場所で間違えていますかね。。。? ちなみに、サーバの「ホスト名+ドメイン名」で記述したマシン名は、 ネット上からnslookupなどで公開を確認しています。 |
|
投稿日時: 2004-08-03 13:35
こんにちは。
スクリプトが見た感じ良さそうだったので気づくのに遅れましたが、ひょっとして pop側の起動スクリプトで、\マークの後ろにスペースが入ってないですか? 参照元の記事を見ると、1行目の「〜省略〜 /bin/checkpassword \」の後ろに スペースが入っているように見えるので、コピー&ペースト等しているのであれば たぶん入ってる可能性があります。 このスペースを取って再度確認してみてください。 |
|
投稿日時: 2004-08-03 13:52
> 参照元の記事を見ると、1行目の「〜省略〜 /bin/checkpassword 」の後ろに
> スペースが入っているように見えるので、コピー&ペースト等しているのであれば > たぶん入ってる可能性があります。 > このスペースを取って再度確認してみてください。 入っていました!! スペースを削除したら、見事!何事もなかったかのように 動作しました。困り果てていたので、感謝感激です。 ありがとうございます。 後学のため、初心者質問ですが、 シェルスクリプトで、「\」の後ろに文字がある場合、 どこかにエラーがログされるものなのでしょうか? スペースに関しては今後は未然に防げると思いますが、 チェックするポイントがありましたら、 ご教授下さいませ。。。 |