
Я пытаюсь заставить супервайзера следить за тем, чтобы моя система управления очередями работала постоянно.
Вот шаги, которые я предпринял, собранные мной из разных источников: (запускал как 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
с модами, чтобы соответствовать пути, по которому 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
супервайзера как сервис - подозреваю, это потому, что у меня нет сценария 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 каждый раз)