刺身の上にたんぽぽ乗せる日記

プログラミングしたり、自販機の下に落ちてる小銭を集めたりしてます

supervisorをインストール

http://supervisord.org/
基本的にはスーパーバイザなんだけど、適当なシェルスクリプトを実行できるので、デーモンにしてなかったスクリプトを走らせるためにインストールしてみた。

programのところに、

redirect_stderr=true
stdout_logfile=/var/log/2chnavicrawlerout
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB

とか書いておくと、webインターフェースのtailするところから色々見れるので便利。

サーバー起動時に動かすためには、

http://serverfault.com/questions/96499/how-to-automatically-start-supervisord-on-linux-ubuntu

にあるけど、githubからのダウンロードがcurlではうまくいかなかったので、wgetで落として、リネームしたほうがいい。

このファイルだけだと、stopがうまく動かないので、下の方に書いてある2行(stop allとshutdown)をstopの先頭に加えておくときっちり止まる。

solrが、supervisorからstopしても、プロセスが生き続けたので、困ってた。
stopsignalが違うのかと思ってSIGTERM以外にもSIGQUITとか色々試してみたけど、結局プロセスが止まらない。よく考えてみればsupervisorはchild processの生死しか確認してないな、と思って、solrを起動するためにshell scriptを挟んでいたんだけど、これを直接supervisorから起動するようにしたらうまくいった。

[program:solr]
command=java -jar start.jar
directory=/home/user/apache-solr-3.1.0/example/