いろいろブログ見たけど、ハマリどころを書いてないのでメモしました。ノイズみたいな記事が多すぎ。
URL: http://d.hatena.ne.jp/anatoo/20120310/1331321778
普通にインストールせずにファイルとしてSupervisorを置くだけで使えるらしいが、
「supervisor.medusa」がインポートできない問題の解決策がわからないので、
インストールはpipで行った。
pip install supervisor
この「echo_supervisord_conf」コマンドでデフォルトのコンフィグファイルを出力してくれるらしいので、
/etc/supervisord.confに保存させる。
echo_supervisord_conf > /etc/supervisord.conf
おそらく、/etc配下は権限がないと出来ないので、
sudo echo_supervisord_conf > /etc/supervisord.conf
とかでやらないと出来ないでしょう。
しかし僕はなぜか権限エラーで出来なかったので、
echo_supervisord_conf > tmp
いったんカレントディレクトリにtmpとして保存して、
sudo mv tmp /etc/supervisord.conf
mvコマンドで移動させるというやり方したw
そのあとで、「supervisord.conf」。ここを強調してない記事があるので、見落としがちです。
[include] files = /etc/supervisord.d/*.ini
このように書き換えておきます、「/etc/supervisord.d」配下にある「〜.ini」ファイルを見てくれます。
[include]の前にもセミコロンがあるのを外しておきましょう。
「/etc/supervisord.d」というディレクトリが/etcの下にないといけないので
mkdir /etc/supervisord.d
を使います。
supervisord
でいったん起動します。
次に、まだTornadoの起動の設定をしてないので、記載します。
「tornado.ini 」ってファイルを「/etc/supervisord.d」配下に作ります。
sudo vi /etc/supervisord.d/tornado.ini
[program:tornado] command=python /hoge_path/facebook.py --port=3000 numprocs=1 autostart=true ; supervisorが起動したら自動的に起動する autorestart=true ; 落ちても自動的に再起動する user=tornado_usr redirect_stderr=true ; エラー出力を標準出力にリダイレクトする stdout_logfile=/tmp/tornado.log ; 標準出力をログに取る
hoge_pathは自分のに置き換えましょう。
また、
facebook.pyは起動したいTornadoのPythonファイルですね。
-
- port=3000もご自身のに置き換えましょう。
%(process_num)s という書き方もできるらしいが、この変数をどこに設定するのかがわからないので
無視しました。
http://webos-goodies.jp/archives/deploying_tornado_with_supervisord.html#comments
の記事を書いた人に質問しました。
記載が終わったら、
supervisorctl restart supervisorctl reread supervisorctl add tornado
でいけるはずですね。
「supervisorctl status」コマンドで確認できます
$ supervisorctl status tornado RUNNING pid 31712, uptime 0:00:08
これで僕はさくらのサーバ使ってるけどコンソールを切ってもOKでした。