supervisorでQueue監視をしてみた時の話。
ちょっとハマったsupervisorのQueue監視。そもそも起動にすら失敗したのでクラウドメモ。
supervisord 起動までの手順
Queue管理といえばsupervisord。キュー管理といえばsupervisord。大事なことなので2回言いましたよ。
起動までに結構手間取ってしまったのでクラウドメモ。
supervisord インストール
epelリポジトリが入っているとyum でインストールが可能。
yum --enablerepo=epel install -y supervisor
/etc/supervisord.conf 設定変更
今回はLaravelのQueue管理として導入したので、対象となるコマンド、ディレクトリを設定します。
取り急ぎ、追記する形で対象のコマンドとディレクトリ、そしてログファイルを下の方に追記。
supervisordを起動!!
service supervisord start
何かエラる!
socket が行方不明のようだ
http_port=/var/tmp/supervisor.sock ; (default is to run a UNIX domain socket server)
[FAILED]
[FAILED]
ソケットのありかを探す
find . -name "supervisor.sock" -ls
supervisor.sockなんてない!!!
なんかこういうの、MySQLのインストに失敗してmysql.sockが無いって言われるのとなんか似てるぞ。。?
困ったときは公式をチェック
sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
(touchしてsockファイルを作れと。)
issuで作られたsockの場所がたまた/var/run/下な訳であって、必ずしもこのディレクトリに作ることは必須では無いと思われ。
私はとりあえずissuと同じディレクトリで作りました。
上記手順でsockを作ったら再度/etc/supervisord.confをひらいてsockのパスを修正。
supervisordを起動!!
[root@laravel]# service supervisord start
Starting supervisord: Unlinking stale socket /var/run/supervisor.sock
[ OK ]
Starting supervisord: Unlinking stale socket /var/run/supervisor.sock
[ OK ]
めでたしめでたし!
監視したい機能が他にもあったら[program:プログラム名称]でどんどん設定すればよろしいはず。
コマンドとディレクトリとログファイルを設定すればよし。