Supervisor

デーモン化されてないアプリをデーモン化したいときに使う。daemontools的な。

インストール

CentOS6の場合 epelが設定されてるなら

# yum -y --enablerepo=epel install supervisor

MT用のStaramanを管理したい場合

starmanの起動用スクリプトを/var/www/tools/mt/mt.shにおいていたとして。

$ vi /var/www/tools/mt/mt.sh
 
#!/bin/sh
 
cd /var/www/mt
STAR=/usr/local/bin/starman
PID=/var/www/tools/
$STAR --l :5000 --pid $PID/mt.pid ./mt.psgi

設定ファイルは/etc/supervisor.conf

# vi /etc/supervisor.conf
 
[program:mt]
user=apache                ; setuid to this UNIX account to run the program                           
command=/var/www/tools/mt/mt.sh ; the program (relative uses PATH, can take args)                        
;priority=999                ; the relative start priority (default 999)                              
;autostart=true              ; start at supervisord start (default: true)                             
;autorestart=true            ; retstart at unexpected quit (default: true)                            
redirect_stderr=true
;startsecs=10                ; number of secs prog must stay running (def. 10)                        
;startretries=3              ; max # of serial start failures (default 3)                             
;exitcodes=1               ; 'expected' exit codes for process (default 0,2)                          
;stopsignal=QUIT             ; signal used to kill process (default TERM)                             
;stopwaitsecs=10             ; max num secs to wait before SIGKILL (default 10)                       
;log_stdout=true             ; if true, log program stdout (default true)                             
;log_stderr=true             ; if true, log program stderr (def false)                                
stdout_logfile=/var/log/psgi/psgi.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)                                      
;nodaemon=true              ; (start in foreground if true;default false)                             

unicornを管理したい場合

unicornの起動用スクリプトを/var/www/tools/redmine/redmine.sh

$ vi /var/www/tools/redmine/redmine.sh
 
#!/bin/sh                                                                                               
 
cd /var/lib/redmine                                                                                     
BUNDLE=/usr/local/rbenv/shims/bundle                                                                    
ENV=production                                                                                         
CONF=config/unicorn_redmine.rb
$BUNDLE exec unicorn_rails -E $ENV -c $CONF -p 8080 

パーミッションは適宜設定。

# vi /etc/supervisor.conf
 
[program:redmine]
user=webapp                                    
command=/var/www/tools/redmine/redmine.sh                                          
redirect_stderr=true                            
stdout_logfile=/var/log/unicorn/stdout.log        
logfile_maxbytes=1MB                         

起動

$ sudo /etc/init.d/supervisord start

コマンド

supervisorctlを使う。

$ sudo supervisorctl status # statusの確認 
$ sudo supervisorctl start mt # 個別プロセスのスタート
$ sudo supervisorctl stop mt # 個別プロセスのストップ
server/supervisor.txt · 最終更新: 2013/08/11 15:52 by eiji