我正在尝试让主管工作以确保我的队列系统始终运行。
以下是我采取的步骤,是我从各种来源拼凑起来的:(以 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
答案1
要让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/
答案2
我刚刚花了几个小时尝试让主管和 Amazon Linux AMI 正常运行。我遇到了您提到的症状。
一些怪癖:
- 继续在任何或命令中包含
-c /etc/supervisord.conf
(或任何您的路径),并确保每次都从同一个用户运行。supervisord
supervisorctl
在您的中
/etc/supervisord.conf
,当您附加命令时,请确保在名称前加上“program:”,如下所示:[program:queue] command=/usr/bin/php /path/to/AppName/artisan --env=production --timeout=240 queue:listen
一旦我完成上述操作,supervisorctl 最终识别了队列进程/程序。
我还没有sudo service supervisor restart
意识到 Supervisor 是一项服务 - 我怀疑这是因为我没有在很多地方提到过的 Upstart 脚本。目前我不确定我是否需要它。
我使用的一些调试技巧:
ps aux | grep super
看看它是否正在运行- sudo vim 编辑
/etc/supervisord.conf
,sudo /usr/local/bin/supervisorctl -c /etc/supervisord.conf
然后avail
、reload
等update
进行更新(而不是每次编辑 .ebextensions 并推送到 elastic beanstalk)