【概要】
qmailを運用している時、キューが大量にたまった。
qmailのキュー削除には「qmHandler」の名前を良く聞くが、
これでは対応できず(「./qmHandle -D」でも一切キューが消えない...)、
ファイル操作より削除した時の手順。
【手順】
(事前準備)qmail-fixをダウンロードしコンパイルしておく。
http://www.netmeridian.com/e-huss/queue-fix.tar.gz
※コンパイル時に以下2点注意
・error.hの「extern int errno;」をコメントアウトし、そのすぐ下に「#include <errno.h>」を追加
・conf-ccの「gcc -O2」を「gcc -O2 –include /usr/include/errno.h」に修正
(作業手順)
- qmailを停止
 /etc/init.d/qmal stop
- qmalが停止したか確認
 ps -ef|grep qmail
- qmailがいくつかまだ動いている場合は、しばらく待つかプロセスをkillする。
- キューのファイルを削除
 echo /var/qmail/queue/*/*/* | xargs rm -rf
- queue-fixを実行
 ./queue-fix
- qmailを起動
 /etc/init.d/qmail start
qmail停止時に、スパムサーバにずっと握られてしまっているのか、プロセスがなかなか終了せず、killしていたが、これがなかなか面倒。一気にkillするスクリプトをつくるなどして対応。