自作のスクリプトのプロセス管理するために入れてみました。
インストール
$ sudo yum --enablerepo=epel install supervisor
supervisor.confに以下を追記
[program:test]
command=/usr/bin/test.sh
autostart=true ; start at supervisord start (default: true)
autorestart=true ; retstart at unexpected quit (default: true)
logfile=/var/log/supervisor/test.log ; child log path, use NONE for none; default AUTO
logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
logfile_backups=10 ; # of logfile backups (default 10)
supervisorを起動
$ sudo /etc/init.d/supervisord start
supervisorのステータスを確認
$ sudo /usr/bin/supervisorctl status
test RUNNING pid 3598, uptime 0:00:22
$ ps aux | grep test.sh
root 3598 0.9 0.1 9676 1204 ? R 17:41 0:02 /bin/bash /usr/bin/test.sh
プロセスをきってみる
$ sudo kill 3598
$ sudo /usr/bin/supervisorctl status
test RUNNING pid 30398, uptime 0:00:03
$ ps aux | grep test.sh
root 30398 1.0 0.1 9676 1200 ? S 17:47 0:00 /bin/bash /usr/bin/test.sh
ちゃんと起動されている
はまったこと
もともとデーモンで動いてるものをsupervisorで管理したら、プロセスが無限にあがってしまって悩んでました