amavisd-newの問題解決
spamassassinの日次アップデートスクリプトがエラーを送ってくるようになったので、その原因を調査して解決しました。
spamassassinは迷惑メール定義ファイルを持ち、迷惑メールをサーバー側で削除してくれるプログラムです。
sa-update.cronを日次処理で実行させると、cronがエラーのメールを送ってきます。
タイトルは
/usr/share/spamassassin/sa-update.cron 2>&1 | tee -a /var/log/sa-update.log
内容は
The amavisd daemon is apparently not running, no PID file /var/run/amavisd/amavisd.pid
という風になっています。
amavisdはamavisd-newというサーバー側のウィルスメールスキャナーで、spamassassinと連動して動作しています。
このエラーメッセージを見ると、amavisdが起動していないのかな?と考えます。
サーバーにログインして、
[bash]
service amavisd status
[/bash]
としてみて、停止しているかどうかを確認してみます。
結果は
amavisd (pid xxxxx xxxxx xxxx) is running…
となって、プロセスは動作しているようです。
では再起動させようとして、
[bash]
service amavisd restart
[/bash]
としてみると、
amavisd を停止中: The amavisd daemon is apparently not running, no PID file /var/run/amavisd/amavisd.pid
amavisd を起動中: [ OK ]
同じエラーが出ます。
[bash]
ls /var/run/amavisd/
[/bash]
してもamavisd.pidが確かにありません。
設定ファイル
/etc/amavisd/amavisd.conf
には
$pid_file = “/var/run/amavisd/amavisd.pid”;
とあります。
この辺を検索してみると、
$pid_file = “$MYHOME/var/amavisd.pid”
という記述もあるので、もしかしたら、と/var/spool/amavisd/var/を確かめるとamavisd.pidはありました。
DaemonをStopするのにも、別のところのpidファイルを探しに行っていたようなので、一度Service amavisd statusで表示されたプロセスをkillしてみます。
そして再度起動、さらに再起動してみます。
[bash]
service amavisd restart
[/bash]
amavisd を停止中: [ OK ]
amavisd を起動中: [ OK ]
というわけで、うまくいきました。
[bash]
ls /var/run/amavisd/
[/bash]
すると
amavisd.pid
があることが確認できます。