<

![endif]-->

fc2ブログ

bashとcronでプロセス監視

常駐プロセスを監視するバッチを書いてみました。
psを見て指定された文字列が無い場合、エラーメールが届きます。

#!/bin/bash
[email protected]
NOCHECK=/tmp/nocheck
if [ -e $NOCHECK ];
then
exit 0
fi

isAlive=`ps -ef | grep $1 | grep -v grep | grep -v process_watch.sh | wc -l`
if [ $isAlive -eq 0 ]; then
echo stop_process $1 | mail -s stop_process $MAIL
exit 1
fi

process_watch.sh
というファイル名にしています。もしファイル名を変えるなら
grep -v process_watch.sh
の部分も修正してください。
また、一時的に監視を止めたい場合、/tmp/nochecというファイルを作成すると
プロセスの状況によらず、このスクリプトは正常終了します。

chmod 755 /opt/process_watch.sh
で実行パーミッションを設定してます。
cronの設定例は以下の通りです。

10 * * * * /opt/process_watch.sh target.rb

これは、毎時10分にtarget.rbがpsに存在しているかチェックしています。

COMMENTS

COMMENT FORM

TRACKBACK


この記事にトラックバックする(FC2ブログユーザー)