ポジローぽけっと

昨日より今日、今日より明日を信じて、トライトライ

init.dで起動するプロセスが異常終了した場合に再起動かけたかったら

monitを使う

install

sudo apt install monit

setting

cd /etc/monit/conf.d
sudo vi example.conf

最もシンプルなexampleは以下(example.confは/etc/monit/monitrcから読み込まれる)、
(/etc/init.d/exampleは自身でexample.pidを生成し、serviceから呼び出せる場合

check process example with pidfile /var/run/example.pid
start program = "/usr/sbin/service example start"
stop  program = "/usr/sbin/service example stop" 

設定できたら

sudo service monit restart

test

起動しているexampleを停止したら、monitが再起動かけるかテスト

sudo tail -f /var/log/monit.log &
sudo service example stop

[JST Aug 14 21:13:56] error    : 'example' process is not running
[JST Aug 14 21:13:56] info     : 'example' trying to restart
[JST Aug 14 21:13:56] info     : 'example' start: /usr/sbin/service

[JST Aug 14 21:15:57] info     : 'example' process is running with pid 7267

monit自身が異常終了したらどうするの?

monitは/etc/inittabに登録する

※これはまだ試してない

参考

Easy, proactive monitoring of processes, programs, files, directories, filesystems and hosts | Monit

15分で始めるmonitによるサーバ監視 - SHANON Engineer's Blog

CentOS 6.5にmonitをインストールしてプロセス監視をする - Qiita

initとプロセス再起動