トラブル
qmail-remoteがタイムアウトしない
qmail-remoteが何日だろうが、何ヶ月だろうが生きたままになっていることがある。 このようなプロセスが積み重なってくると、そのうちにconcurrencyremoteの数に到達してしまい一通のメールも送信できなくなってしまう。
このようなqmail-remoteを確認するコマンドは以下。
ps ax -o etime,pid,comm --no-heading | grep qmail-remote
これにより以下のような出力が得られる。
02:10:33 12986 qmail-remote 03:47:23 28958 qmail-remote
フィールドは左から、コマンド投入後経過時間、プロセス番号、コマンド名
本来であれば、timeoutconnect,timeoutremote,timeoutsmtpdの値によって、時間内に送信できない場合はqmail-remoteが終了するはずだが、そうならない理由は、送信先サーバがメールを受信するつもりがないのに、ACK等の制御コードだけは送ってくるからである。このため、timeoutremoteのタイムアウト値がリセットされてしまい、決してタイムアウトにならない。
qmail自体をパッチしてこの問題を修正することはできるが、ここでは時間のかかりすぎるqmail-remoteを「殺す」方策をとる。