ブリアラ

cron で動かしてる fetchmail がよく失敗してるので,スクリプトを改良.
前のプロセスが生きている場合は,それを殺した後に実行する.

#!/bin/sh
#
# check mail
echo ' log for fetchmail ---'
echo `date`
# commands
GREP="/bin/grep"
# check last
echo /bin/ps aux | ${GREP} -v ${GREP} | ${GREP} fetchmail > /dev/null 2>&1
case $? in
1) echo ' no problem' ;;
*) echo ' stop fetchmail'
killall fetchmail
esac
echo ' do fetchmail'
/usr/bin/fetchmail
echo ' done.'

沢山のサイトを巡ったので,参照はなし.
ポイントは ps aux | grep xxx したときに,gerp xxx 自身が引っ掛かるとき,引っ掛からない場合があることでした.
crontab で次のように設定して, last のログを残す.
0,30 7-22 * * * ~/checkmail.sh > ~/checkmail.log