fetchmailのプロセスを監視する
先日設定した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が止まったままになることは無いと願いたいです。