突然の電話に出てみると「WEBサーバーがダウンしてるみたいなんですけど!?」 とまぁ、サーバー管理者なら誰でも経験したことあるような、無いような話ですが。 普段動いてる時は感謝されず、止まると怒られる。そんな理不尽なサーバー管理者。 自分の身は自分で守りましょう。 とゆーことで簡単なプロセス監視シェルスクリプトを作りました。 Cronに仕込むので /etc/cron.d/ 以下に仕込みます。vi /etc/cron.d/process_chk.sh #httpdhttpd=`ps ax | grep '/usr/sbin/httpd' | grep -v 'grep'`if [ -z "${httpd}" ]; then /etc/init.d/httpd restart wait httpd=`ps ax | grep '/usr/sbin/httpd' | grep -v 'grep'` if [ -z "${httpd}" ]; then message="${message}httpd stopd !" else message="${message}httpd stopd restart OK " fifi#postmasterpostmaster=`ps ax | grep 'postmaster' | grep -v 'grep'`if [ -z "${postmaster}" ]; then /etc/init.d/postgresql restart wait postmaster=`ps ax | grep 'postmaster' | grep -v 'grep'` if [ -z "${postmaster}" ]; then message="${message}postmaster stopd " else message="${message}postmaster stopd restart OK " fifi#postfix postfix=`ps ax | grep '/usr/libexec/postfix/master' | grep -v 'grep'`if [ -z "${postfix}" ]; then /etc/init.d/postfix restart wait postfix=`ps ax | grep '/usr/libexec/postfix/master' | grep -v 'grep'` if [ -z "${postfix}" ]; then message="${message}postfix stopd " else message="${message}postfix stopd restart OK " fifi#send mailif [ -n "${message}" ]; then mail -s "***ERROR***** process_chk.sh flagsystem.co.jp " "hogehoge@hoge.com" << body${message} .bodyfiexit 0こんな感じです。簡単ですね。ps ax | grep 'hogehoge' | grep -v 'hogehoge'とやって、結果が帰ってこなければ、一旦再起動を試し、それでもダメならアラートです。立ち上がった場合はアラートに「OK」が付きます。 ではクーロンに仕込んでやりましょう。そのまえにパーミッションを忘れずに chmod 755 /etc/cron.d/process_chk.shcrontab -e#process_chk.sh*/5 * * * * /etc/cron.d/process_chk.sh > /dev/nullで、気づいた人も多いかと思いますが、メールが止まって起動しなかった場合はお手上げです。そこまで求めるなら別な方法考えないといけませんね。