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