LoginSignup
2
0

More than 5 years have passed since last update.

CentOS6系にSupervisor3系をインストールするには

Posted at

何故記事を書いたのか?

CentOS6.9の環境にLaravel5.4をインストールして、キューを使いたいという状況だった。
(Laravelのドキュメントには、キューを使うときは、Supervisorでデーモン化しましょうみたいなことが書いてある)

しかし、この手順はSupervisor3系を前提にされている様子。
とあるサイトで見つけた内容を鵜呑みにすれば、Supervisor2系には[include]設定(/etc/supervisor/conf.d/に各ジョブのconfファイル置く使い方)ができないとか。

ということで、yumでSupervisorをインストールすると2系が入ってしまうので、3系をインストールする手順をログする。

インストール手順

python-pipのインストール

Supervisorはpythonのパッケージになっているということで、yumではなくpython-pipでもインストールできる。

yum -y install python-pip

Supervisorのインストール

pip install supervisor

インストールをログを見ていてもわかるが、投稿時点では3.3.4がインストールされた。

# supervisord -v
3.3.4

依存するライブラリが最新だと、エラーになる場合があるとのことで、参考にしたサイトに従って下記のパッケージをダウングレード。

pip install meld3==1.0.0

設定ファイルを/etcに作成

yumでインストールすると作成される設定ファイルは、pipでのインストールでは作成されない。
→下記コマンドで作成される。

echo_supervisord_conf > /etc/supervisord.conf

/etc/supervisor/conf.d/の下のconfファイルを読み込む設定

/etc/supervisord.confでコメントアウトされている[include]を次のように書き換える。

[include]
files = /etc/supervisor/conf.d/*.conf

ここでよくわからないのは、Laravelのドキュメントでは「.confが普通だよ」と言っているが、コメントアウトされていた文言は、「.ini」だった。
私はconf派なのでconfにしたが、世の中的にはini派が多そう。

Supervisorで管理したいプロセスの設定

一応、プロセスの設定についても記載。
上記のパスで読み込むからということで、/etc/supervisor/conf.d/xxxx.confのようなファイルを次の内容で作成する。(日本語文字列を書き換える)

[program:ワーカー名]
process_name=%(program_name)s_%(process_num)02d
command=実行したいコマンドなど
autostart=true
autorestart=true
user=実行したいユーザ
numprocs=プロセスの数(上記のコマンドを複数起動ができる)
redirect_stderr=true
stdout_logfile=フルパスで出力するログファイルを指定

serviceコマンドで使えるように/etc/init.dのスクリプトを作成する

githubでスクリプトを公開されている方がいらっしゃるので、使わせてもらう。

curl -o /etc/rc.d/init.d/supervisord https://raw.githubusercontent.com/Supervisor/initscripts/master/redhat-init-equeffelec
chmod 755 /etc/rc.d/init.d/supervisord
chkconfig --add supervisord

動作確認

起動

次のコマンドで起動。

service supervisord start

停止

なんとSupervisorのserviceコマンドによるstopでは停止できない。
止めるときは下記のコマンド。

pkill supervisord

要するにプロセスを直接killしている。
(stack overflowでも「killしなさいよ」という情報にぶち当たった)

参考

https://hawksnowlog.blogspot.jp/2017/03/install-supervisor3-on-centos6.html
https://qiita.com/yushin/items/15f4f90c5663710dbd56
https://github.com/Supervisor/initscripts/blob/master/redhat-init-equeffelec

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0