- - PR -
dovecotが起動していない
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-11-23 20:47
お世話になります。
現在、PostfixとDovecotの環境でメールサーバを立てています。 本日、OutlookExpress6からpop3にて接続しようと したところ、接続できなかった為、サーバを確認しました。 すると、特にログにメッセージが見つからなかった為 ステータスを確認したところ、 「dovecot は停止していますがサブシテムがロックされています」 というメッセージが表示されました。 いろいろとネット内を確認したのですが主に二重起動の制御 ではないかとの意見が多くありました。 ただ、気になったのは先日、dovecotのログの出力先をsyslogを 使用せずに別のログファイルを作成し出力されるように 設定の変更を行いました。そして、ログファイルが蓄積しないように logrotateの設定を行いました。(以下に記載しておきます。) logrotateの設定ファイルに問題があるのかそれとも dovecotの設定部分に問題があるのか、それとも別に何か原因が 考えられるのか、いろいろと悩んだ為、投稿しました。 皆さん、サービスを再起動して切り抜けているようですが 原因がつかめないとまたおきてしまう様でそれは回避したいと 考えております。このような問題にめぐり合った方もしくは こういった方法で回避できるのではというご意見おお持ちの方 に意見を頂ければと思います。どうぞ宜しくお願い致します。 ************************************************** ソフトウェアのバージョン ************************************************** Red Hat Enterprise Linux 4 Postfix-2.1.5-4.2.RHEL4 dovecot-0.99.11-2.EL4.1 ************************************************** /etc/logrotate.d/dovecot(Dovecotログ設定ファイル) ************************************************** /var/log/dovecot*.log { missingok sharedscripts postrotate /bin/kill -USR1 `cat /var/run/dovecot/master.pid 2>/dev/null` 2> /dev/null || true endscript } ************************************************** /etc/dovecot.conf(Dovecot設定ファイル) ※コメントになっていない部分のみ抜き出しました。 ************************************************** protocols = imap pop3 imap_listen = [::] pop3_listen = [::] ssl_disable = yes log_path = /var/log/dovecot.log info_log_path = /var/log/dovecot.log login_dir = /var/run/dovecot-login mail_extra_groups = mail mbox_locks = fcntl auth = default auth_mechanisms = plain auth_userdb = passwd auth_passdb = pam auth_user = root | ||||||||||||
|
投稿日時: 2007-11-24 01:21
こんばんは.
結局何がしたいのでしょうか? 調べ方がわからないのでしょうか? まずは,ちゃんと log を出力するように設定して, そこから何が起きているかを推察していくべきではありませんか? また,別の MRA が起動するなどで 110/tcp を listen しているかも しれないのであれば,process を確認するなりすれば良いでしょう. 手動で dovecot は起動させられませんか? | ||||||||||||
|
投稿日時: 2007-11-24 02:31
話が違うけれども、参考ということで。。
dovecotの0.9はLDAP認証がいけてないので 最新のRedhatが提供されているバージョンか、 もしくは1.0を使った方が良いです。 得にPAM認証でLDAPがダメでした。 | ||||||||||||
|
投稿日時: 2007-11-26 20:38
確かこれは対象プロセスが動いてないけど /var/lock/subsys/dovecot が在る状態。
普通「何か」をしたらおかしくなったら、その「何か」を元に戻す。 これで正常に戻ったら、その「何か」が原因と判るのですが、 元に戻せないのでしょうか。
昔の Dovecot は SIGUSR1 をハンドリングしていなかったと思いますが、 そのバージョンは大丈夫ですか ? | ||||||||||||
|
投稿日時: 2007-11-26 22:15
お世話になっております。
kaz様のご指摘、ごもっともです。もう少しどうしたいのか という点をきちんと伝えるべきでした。 伝えようとした情報が少なかったことも反省しております。 たお様、ご意見ありがとうございました。参考にさせて いただきます。 はしもと様、ご意見ありがとうございます。 休日中にいろいろと模索していたのですが、ログ出力をsyslog経由で maillogに出力するように元に設定変更するとエラーの状態は起きませんでした。 そこで、/etc/logrotate.d/dovecot内に記載している 下記の部分を実行し、dovecotのステータスを確認したところ ************************************************************ /bin/kill -USR1 `cat /var/run/dovecot/master.pid 2>/dev/null` 2> /dev/null || true ************************************************************ 下記のメッセージが表示されました。 「dovecot は停止していますがサブシテムがロックされています」 引用: -------------------------------------------------------------------------------- 昔の Dovecot は SIGUSR1 をハンドリングしていなかったと思いますが、 そのバージョンは大丈夫ですか ? -------------------------------------------------------------------------------- バージョンとログ出力のあたりから検索を行ってみたのですが 見つけられませんでした。 -USR1が使えないとなると-HUPを渡して再起動させてみようと思います。 ありがとうございます。 | ||||||||||||
|
投稿日時: 2007-11-27 13:39
お世話になっております。
まず、前回書き込みの報告です。 ログローテートのファイルで渡していたシグナルを-USR1から-HUPに変更しました。 ************************************************************ /bin/kill -USR1 `cat /var/run/dovecot/master.pid 2>/dev/null`〜 ↓ /bin/kill -HUP `cat /var/run/dovecot/master.pid 2>/dev/null`〜 ************************************************************ 変更後にログを確認したところ、下記のようなメッセージが表示されていました。 ************************************************************ dovecot: Nov 27 12:06:24 Warning: SIGHUP received - reloading configuration ************************************************************ これと合わせてローテートの回数確認のテストも行っていたのですが 上記のメッセージが新しいログファイルではなく最初に上記メッセージが 出力されたログファイルに出力され続けました。 例えば、最初に確認したときdovecot.logとなっているファイルが 回数確認のテスト後にdovecot.log.3となっているにもかかわらず dovecot.log.3のファイルに上記メッセージが出力されました。 通常のメッセージは新しいログファイルに出力されていました。 そこでいろいろ調べていたのですがdovecotのマニュアルの 日本語化プロジェクトのサイトに下記のようにありました。 引用: -------------------------------------------------------------------------------- 設定の再読み込み ---------------- 'dovecot' プロセスに HUP シグナルを送ります。状態確認がログファイルに書か れます: ---%<------------------------------------------------------------------------- dovecot: Jan 08 00:36:45 Warning: SIGHUP received - reloading configuration ---%<------------------------------------------------------------------------- Dovecot を完全に停止するか、再起動しない限り、ログファイルの場所は変わらな いことに注意してください。 ログファイルのローテート ------------------------ もし、syslog を使う代わりに、'dovecot.conf' にログファイルのパスを設定した 場合、ログファイルを閉じて、開き直すために、Dovecot に USER1 シグナルを送 信することができます。 -------------------------------------------------------------------------------- Dovecot日本語翻訳プロジェクトは新しいバージョンに対応する形で 更新し続けているようです。現在は1.0.7に対応しているようです。 USER1シグナルのコメントがバージョン1以降のdovecotに対してあるものだとすると 私のバージョンでは対応していないのかもしれません。 また、新しいログのみ新しいファイルに出力されたのが偶然だったのかどうか 確証はありません。 そこで、不安ではあるのですがログローテートのファイルのkillの部分を 下記のように変更しました。 ************************************************************ /bin/kill -HUP `cat /var/run/dovecot/master.pid 2>/dev/null`〜 ↓ /etc/rc.d/init.d/dovecot restart ************************************************************ 上記のようにサービスの再起動に変更して動かしたところ新しいログに ************************************************************ dovecot: Nov ** **:**:** Info: Dovecot starting up ************************************************************ と表示されログが新しいファイルに出力されるようになりました。 とりあえず、現時点での報告でした。 | ||||||||||||
|
投稿日時: 2007-11-28 00:17
つまり、ログローテーションの際に仕込んでおいた kill -USR1が、
プロセス再起動じゃなくて本当にKILLしたと… 検証するなら実際に-USR1を試してみれば分かると思います。 (夜中とか早朝とか影響の少ないときにでも…) 当方のdovecotはRHEL5(CentOS5)ベースなので1.03ですが、 -USR1は何も表示されませんね。落ちもしませんが。 -HUPは SIGHUP received - reloading configuration と表示されますね。 ※ログファイルが残っていれば、大体いつ頃まで起動していたかわかるから、 ローテーションが原因かも分かるとは思うんですけどね | ||||||||||||
|
投稿日時: 2007-11-30 00:39
変更履歴はソース・アーカイブの ChangeLog ファイルに書かれています。
それによると 0.99.11 ではまだ SIGUSR1 でログを開き直さない様です。 SIGHUP でも開き直さなかった様ですから再起動しか無いみたいですね。 |
1