bashとcronでプロセス監視
常駐プロセスを監視するバッチを書いてみました。
psを見て指定された文字列が無い場合、エラーメールが届きます。
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に存在しているかチェックしています。
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に存在しているかチェックしています。
<<bashとcronでhttpサーバ監視 | HOME | Cocoaで簡単なファイラーを作る>>
COMMENTS
COMMENT FORM
TRACKBACK
| HOME |