qmailでmultilog

最近、qmailでメールをやり取りすると/var/qmail/queueにキューが溜まったまま配送も受信もできず困っていました。メールが消えるわけではないので大事というわけではないのですが、サーバーを再起動しないとリモート/ローカルに配送されないのでかなり厳しい状態でした。ログには何もエラーが出ていないので原因を掴めずひたすら設定の見直しをしていました。
仕方ないのでしらみつぶしということで/var/qmailと/serviceと/commandを総点検。設定とプロセスの挙動を眺めているうちにあることに気づきました。multilogのプロセスの数が足りない。
分かってみれば簡単で、svstat /service/qmail/logがdownというだけでした。/etc/init.d/qmailsvc -u /service/qmailと書いているのが間違いで、正しくは/command/qmail.init startです。終了はこの反対で/command/qmail.init stopです。
嗚呼、なんてアホな勘違いでしょうか…。でもおかげでqmailのキュー遷移やmultilogの処理の流れがそこそこ分かったので良しとします。以下参考&防備録。

#!/bin/sh
#
# chkconfig: 345 85 15
# processname: qmail
# description: Starts and stops qmail.

# source function library
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin

[ -f /var/qmail/rc ] || exit 0


start() {
echo "Starting qmail."
/command/qmail.init start
/command/qmail-smtpd.init start
/command/qmail-pop3d.init start
}

stop() {
echo "Shutting down qmail."
/command/qmail.init stop
/command/qmail-smtpd.init stop
/command/qmail-pop3d.init stop
}

restart() {
stop
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "Usage: qmail {start|stop|restart}"
exit 1
esac

exit 0