スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

bashとcronでプロセス監視

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

#!/bin/bash
MAIL=me@example.com
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ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。