お題の通りです。
例えば、常駐型のプロセスがあって、cron
でそのプロセスの死活チェックを行い、死んでいたらプロセスを復活させたい場合などに使えます。
-
ps
でプロセスを表示。 -
grep
でプロセスをフィルタリング。 -
grep -v grep
で、grep
自身のプロセスを除外。 -
||
でつないで、コマンドが失敗(プロセスが存在しない)場合にコマンドを実行。
ps -ef | grep 探したいプロセス | grep -v grep || プロセスが存在しない場合に実行したいコマンド
例えば、hoge.jar
を実行するJavaプロセスが存在しない場合に、hoge.jar
を起動したい場合はこんな感じです。
ps -ef | grep hoge | grep -v grep || java -jar hoge.jar