Bash
ワンライナー

watchでプロセスの自動再起動ワンライナー

More than 3 years have passed since last update.

概要

たまに落ちてしまうスクリプトを常に動かしておきたかったので、
起動状態を確認して起動していなかったら新しく起動するワンライナーを作りました。

実装

watch  -n 2 "if [ 1 -eq `ps | grep hoge.rb | wc -l` ] ; then ruby hoge.rb; fi"  

プロセスを確認して、特定の文字列が見つからなければコマンドを実行します。

使い方

[プロセス名に含まれる文字] の部分は、プロセスの名前として判断のつくものに変更
[実行したいコマンド] の部分は、実行したいコマンドに変更
[再起動までの時間] の部分は、何秒ごとに監視するかの頻度の秒数に変更

watch  -n [再起動までの時間] "if [ 1 -eq `ps | grep [プロセス名に含まれる文字] | wc -l` ] ; then [実行したいコマンド]; fi"