PythonプログラムをSupervisorでデーモン化

Python用のWebフレームワーク、Tornadoを使ってチャットサイトを開発しました。

Tornadoはプログラムをデーモン化してサーバーで走らせることでデプロイできるのだけれど、そのときにデーモン管理ツール「Supervisor」を使いました。

Supervisorの使い方

pipでSupervisorをインストールします。

設定ファイルをいじります。まずはSupervisorそのものの設定をいじります。
場所はetcにあるsupervisord.confというファイルです。

ファイルの中身はこんな感じ。

自分の場合はusernameとpasswordをコメントインしてIDとパスワードを設定しました。

次に動かすプログラムの設定ファイルを書きます。
/etc/supervisord.dに「ファイル名.ini」で設定ファイルを作成。

中身はこんな感じ。

各項目は見たまんまです。
commandには起動コマンドをフルパスを入れます。
上記の場合、コマンドラインから起動する場合は「python3 app.py」で起動してました。

以下のコマンドでSupervisorを起動。

あとは

とかでSupervisorの状態を確かめられるのだけれど、
supervisorにユーザー名とパスワードを設定している場合、以下のようなエラーが帰ってきます。

このエラーが返ってきたら、次のようにコマンドを入力してSupervisorのシェルにログインしてください。

シェルにログインできたらあとはstatusとかreloadとか、Supervisorのコマンドをそのまま入力すれば操作できます。