amavisd-newの問題解決
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 があることが確認できます。