プロセスがなにかの理由で死んだら、単純にリスタートさせたい。けど、systemdとかmonitとかの設定ファイルを書くのが面倒だなって思っていて調べていた。シェル(Bash)でLoopでかけそうだけど、
until myserver; do echo "Server 'myserver' crashed with exit code $?. Respawning.." >&2 sleep 1 done
Ref: Stackoverflow
これも面倒だと思ってしまいました。スクリプトの前にone command置く感じでやりたいなって調べてみると、immortalというツールを発見!早速インストール。
$ curl -s https://packagecloud.io/install/repositories/immortal/immortal/script.deb.sh | sudo bash $ sudo apt-get install immortal
使い方もシンプルで
$ immortal /bin/sh -c "sleep 5 && date > /tmp/sleep.log"
付属のimmortalctlで、管理できる。
$ immortalctl PID Up Down Name CMD 22400 4.6s 22364 /bin/sh -c sleep 5 && date > /tmp/sleep.log $ immortalctl halt 22364