[Linux] シンプルなプロセス監視にはimmortalが便利

プロセスがなにかの理由で死んだら、単純にリスタートさせたい。けど、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  

Related Posts