読者です 読者をやめる 読者になる 読者になる

fetchmailのプロセスを監視する

Linux debian

先日設定したfetchmailですが、fetchmailをコマンドから実行していると、IMAPサーバーから切断された時にプロセスが終了していまい、メールが転送されなくなってしまいます。
今回はfetchmailのプロセスを監視して、プロセスが無かった場合にfetchmailを起動させるスクリプトを書きました。

pgrep fechmailの結果が1行ならプロセスが生きてて0行なら死んでいる状態と判断してfetchmailを起動させます。
fetchmailのvオプションで吐き出す内容はホームディレクトリにlogsディレクトリを作ってその中に記録されるようにしました。
それらをwhileの無限ループで動かしています。

#!/bin/sh

while true
do
   pal=`pgrep fetchmail | wc -l`

   if [ $pal = "0" ]
   then
      fetchmail -v > ./logs/fetchmail-`date +%m-%d-%y-%H-%M`.log &
   fi

   sleep 1
done

今回はchk.shというファイル名にしたので、実行属性を付けてバックグラウンドで実行します。

# chmod +x chk.sh
# ./chk.sh > /dev/null &

このままにしておけばchk.shが動いている限りfetchmailが止まったままになることは無いと願いたいです。