Я пытаюсь заставить руководителя работать, чтобы моя система очередей всегда работала.
Вот шаги, которые я предпринял и собрал из разных источников: (Запуск от имени пользователя 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
Я просто потратил на это пару часов, пытаясь заставить Supervisor и 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
чтобы распознать супервизора как услугу - я подозреваю, что это потому, что у меня нет сценария-выскочки, который я видел в нескольких местах. Не уверен, что он мне нужен на данный момент.
Некоторые методы отладки, которые я использовал:
ps aux | grep super
чтобы увидеть, работает ли он/etc/supervisord.conf
и sudo /usr/local/bin/supervisorctl -c /etc/supervisord.conf
затем avail
, reload
, update
и т.д. для обновления (вместо того, чтобы редактировать .ebextensions и каждый раз нажимать на эластичный beanstalk)чтобы супервизор работал как услуга, вам понадобится /etc/init.d/supervisord
файл. я использовал https://raw.githubusercontent.com/Supervisor/initscripts/master/redhat-init-equeffelec с модами, соответствующими пути, по которому easy_install помещает двоичные файлы в (/usr/local/bin/
) и найти pid и логины /var/run/
и /var/log/