その後も時々発生しており、process監視でしのいでいる状態です。
その5だとmilterの子processが死んだ場合、sendmailが動かなくなるため、ちょっとscriptを変更しました。5分周期以外で起動する場合には、起動周期(sec)を引数として与える必要があります。
#!/bin/sh
sec=$1
t0=`date -j "+%s"`
if [ -z $sec ]; then
sec=300
fi
for proc in devd local_unbound syslogd ntpd sshd sendmail cron blacklistd; do
/etc/rc.d/$proc status 1>/dev/null || /etc/rc.d/$proc start
done
for proc in saslauthd nsd mysql-server dovecot apache24 milter-greylist \
php-fpm; do
/usr/local/etc/rc.d/$proc status 1>/dev/null \
|| /usr/local/etc/rc.d/$proc start
done
for datetime in `/usr/bin/sed -n 's/\(...............\).*: Milter (greylist): to error state/\1/p' /var/log/maillog | sed 's/ /0/g'`; do
t=`/bin/date -j -f "%b0%d0%T" $datetime "+%s"`
if [ $(($t0 - $t)) -le $sec ]; then
/usr/local/etc/rc.d/milter-greylist restart
break
fi
done
