supervisorをCentOS6.5にインストールしたメモ
2015年2月27日
supervisor自体は、pythonで作られたプロセス管理ツール的なやつですね。
pythonはすでにインストールされてたんで、easy_installのインストールから。
setuptools(easy_install)のインストール
この辺(setuptools 18.2 : Python Package Index)から、OSにあったのを探した結果
wget https://bootstrap.pypa.io/ez_setup.py -O - | python
上記のコマンドでインストールできました。
# バージョン確認 easy_install --version
supervisorのインストール
easy_installがインストールができたので、supervisorのインストール。
easy_install supervisor
お手軽っすね。
# バージョンの確認 supervisord -v
supervisorの設定
echo_supervisord_confってコマンドが追加されてるんで、こいつでconfの雛形を作ります。
echo_supervisord_conf > /etc/supervisord.conf
supervisord.confの編集
defaultのままだと、.sock、.logやら、.pid辺りが全部/tmp/に入ってしまうので、適時修正。
;file=/tmp/supervisor.sock file=/var/run/supervisor.sock ;logfile=/tmp/supervisord.log logfile=/var/log/supervisord.log ;pidfile=/tmp/supervisord.pid pidfile=/var/run/supervisord.pid ;serverurl=unix:///var/tmp/supervisor.sock ; use a unix:// URL for a unix socket serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
あとは、プロセスを管理したいアプリ毎の設定ファイルをわける為に、
[include] ;files = relative/directory/*.ini files=/etc/supervisord.d/*.ini
ファイルの置き場所はどこでもいいですが、/etc/supervisord.d/の下に入れるのが一般的な模様。
ここに置いたファイルの中身は後ほど追記。
追加しました:plackアプリをsupervisorで永続化
supervisorの操作
起動
supervisor自体が落ちると意味ないので、upstartで起動。
description "supervisord" start on runlevel [2345] stop on runlevel [!2345] respawn exec /usr/bin/supervisord -n
upstartコマンド
# 起動 initctl start supervisord # 再読み込み(kill -HUP) initctl reload supervisord # 再起動 initctl restart supervisord # 停止 initctl stop supervisord # 一覧 initctl list
supervisorコマンド
# appの登録(設定の再読み込み) supervisorctl reread && supervisorctl update # appの起動(ex: my-app) supervisorctl start my-app # appの再起動(ex: my-app) supervisorctl update my-app # appの停止(ex: my-app) supervisorctl stop my-app # ステータス supervisorctl status
まとめ
これで、supervisorのインストールと設定ができました。
アプリ毎の設定(/etc/supervisord.d/*)は後ほど追記(予定)です。
アプリ毎の設定については別エントリーで:plackアプリをsupervisorで永続化