supervisorでプロセス管理

Feb 29, 2012 · 126 words · 1 minute read supervisor CentOS

自作のスクリプトのプロセス管理するために入れてみました。

インストール

$ 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で管理したら、プロセスが無限にあがってしまって悩んでました