我试图让主管工作以确保我的队列系统始终运行。
以下是我从各种来源拼凑而成的步骤:(以 root 或超级用户身份运行)
冉:
# easy_install supervisor # echo_supervisord_conf > /etc/supervisord.conf # vi supervisord.conf
将以下内容粘贴到文件末尾:
command=/usr/bin/php /path/to/AppName/artisan --env=production --timeout=240 queue:listen
冉:
# supervisord -c /etc/supervisord.conf # supervisorctl supervisor> status supervisor>
它不显示任何内容。
冉:
# service supervisord reload supervisord: unrecognized service
要让 supervisord 作为服务运行,您需要一个
/etc/init.d/supervisord
文件。我使用https://raw.githubusercontent.com/Supervisor/initscripts/master/redhat-init-equeffelec 和 mods 来匹配 easy_install 将二进制文件放在 (/usr/local/bin/
) 的路径并找到 pid 并登录/var/run/
并/var/log/
我只是在这上面花了几个小时,试图让主管和 Amazon Linux AMI 发挥得很好。我正在经历你提到的症状。
一些怪癖:
-c /etc/supervisord.conf
(或任何您的路径),并确保您每次都从同一个用户运行。supervisord
supervisorctl
在您的 中
/etc/supervisord.conf
,当您附加命令时,请确保在名称前加上“程序:”,如下所示:完成上述操作后,supervisorctl 终于识别出队列进程/程序。
我仍然没有
sudo service supervisor restart
将主管识别为服务 - 我怀疑这是因为我没有在少数地方提到的暴发户脚本。不确定我现在需要一个。我使用的一些调试技术:
ps aux | grep super
看看它是否正在运行/etc/supervisord.conf
然后,等sudo /usr/local/bin/supervisorctl -c /etc/supervisord.conf
进行更新(而不是每次编辑 .ebextensions 并推送到弹性 beanstalk )avail
reload
update