end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転します

amon2 + Starlet + Supervisor による PSGI/Plack の自動起動(daemon化)

「とりあえず、動きますよ」程度のメモです

Starlet の install

$ wget http://search.cpan.org/CPAN/authors/id/K/KA/KAZUHO/Starlet-0.24.tar.gz
$ tar -zxvf Starlet-0.24.tar.gz
$ perl Makefile.PL
$ make
$ make test
$ su
#make install

supervisord の 設定

supervisordに付属のscriptに任せます

$ su -
# /usr/local/bin/echo_supervisord_conf > /etc/supervisord.conf
# vi /etc/supervisord.conf
※必要に応じて /etc/supervisord.conf を編集して下さい

pidfileは
/tmp/supervisord.pid -> /var/run/supervisord.pid に変更しました

supervisord自体の自動起動

https://github.com/Supervisor/initscripts で公開されていますので、これを次の手順で配備します。

$ su -
# cp redhat-init-jkoppe /etc/rc.d/init.d/supervisord
# chmod 755 /etc/rc.d/init.d/supervisord
# cp redhat-sysconfig-jkoppe /etc/sysconfig/supervisord
# chkconfig --add supervisord
# chkconfig --list supervisord

※ /etc/rc.d/init.d/supervisord は、pathを
/usr/bin/ -> /usr/local/bin/ に変更した方が良いかもしれません。

supervisordによる Starlet(PSGI/Plack)の起動(daemon化)

[include]
files = /etc/supervisord.d/*.ini

/etc/supervisord.conf を上記のように編集し、daemon化するアプリを別ファイルで管理する方法もあるようですが、
今回は、/etc/supervisord.conf に直接、次のような内容を記載しました。

$ vi /etc/supervisord.conf
[program:ban-starlet]
directory=/home/endo/dev/sexy-src-step2/Ban/script
command=/usr/local/bin/start_server --port=cent6.a5.jp:5000 --interval=10 -- /usr/local/bin/plackup -E development --no-default-middleware -s Starlet --max-workers=25 --timeout=1800 --keepalive-timeout=0 --max-reqs-per-child=700 --min-reqs-per-child=1000 /home/endo/dev/sexy-src-step2/Ban/script/ban-server
numprocs=1
autostart=true
autorestart=true
user=endo
redirect_stderr=true
stdout_logfile=/home/endo/local/apache22/logs/starlet_error_log