Linux上のプロセスを監視して、プロセスがダウンしたら再起動させるShell

2006年12月11日 オフ 投稿者: KYO
Table of Contents

公開中のLinuxでプロセスを監視したい場合、「プロセスが生きているか」「死んでいるか」をチェックする必要がある。
例えばcronを使って、シェルを実行できるスクリプトを使って定期的にチェックする方法もあるけど、直接シェルを使ってプロセスの監視を行う。
プロセスダウン時は、プロセスの再起動を実行させて、万が一の場合はサーバー管理者へメール送信・・・・といった具合。


とりあえず、開発機上で使用しているshell。
プロセスの監視には持って来いだけど、意図的にプロセスを止めたい場合はこのshellをkillする必要がある。

$ vim
#!/usr/bin/sh
while true
do
#ここではftpdのプロセス監視
isAlive=`ps -ef | grep " ftpd " | \
grep -v grep | wc -l`
if [ $isAlive = 1 ]; then
echo "プロセスは生きています"
else
echo "プロセスは死んでいます"
fi
sleep 3
done

後は、プロセスが死んでいる場合に[ 再起動 ]の処理を行う。
また、再起動できない場合に管理者へメールする処理など。
・・・メモx2。