Я пытаюсь заставить супервизор, работающий удостоверяться, что моя система очереди всегда работает.
Вот шаги, которые я сделал, который я соединил из различных источников: (Работал как пользователь 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
для запуска супервизора в качестве службы нужен файл /etc/init.d/supervisord
.
Я использовал https://raw.githubusercontent.com/Supervisor/initscripts/master/redhat-init-equeffelec.
с помощью модов, соответствующих пути, по которому simple_install выставляет двоичные файлы (/usr/local/bin/
) и находит pid и лог в /var/run/
и /var/log/
Я просто потратил на это пару часов, пытаясь заставить Supervisor и AMI Amazon Linux работать нормально. У меня были именно те симптомы, о которых вы упомянули.
Некоторые причуды:
-c /etc/supervisord.conf
(или любой другой путь) в любой супервизор
] или supervisorctl
, и убедитесь, что вы запускаете каждый раз от одного и того же пользователя. в вашем /etc/supervisord.conf
, когда вы добавляете команду, убедитесь, что вы префикс имени с "программа:", например:
[программа: очередь]
command = / usr / bin / php / path / to / AppName / artisan --env = production --timeout = 240 очередь: слушать
Как только я сделал это, 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 каждый раз)