5

Я использую Supervisord на своем сервере Ubuntu 14.04, и все работает нормально. Я развертываю, используя git push, и после развертывания мне также нужно перезапустить сервер приложений (gunicorn), что я предположительно могу сделать с помощью supervisorctl .

unik supervisord.conf , gunicorn определяется следующим образом:

[program:gunicorn]
command=/home/imb/imb/venv/bin/gunicorn --worker-class eventlet -b 127.0.0.1:5000 -w 1 app:app
directory=/home/imb/imb
autostart=true
autorestart=true
stdout_logfile=/tmp/gunicorn.log
redirect_stderr=true
stopsignal=QUIT

и я включил supervisorctl следующим образом:

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

Я начал с помощью супервизора

sudo supervisord -c /home/imb/imb/supervisord.conf

Насколько я понимаю, теперь я должен быть в состоянии перезапустить gunicorn с помощью команды supervisorctl restart gunicorn , но когда я это делаю, я получаю

$ supervisorctl restart gunicorn
unix:///var/run/supervisor.sock no such file

Я проверил, и файл /var/run/supervisor.sock действительно не существует, хотя я уверен, что супервизор на самом деле работает:

$ ps -A | grep supervisor
27211 ?        00:00:00 supervisord

Кто-нибудь знает, почему файл /var/run/supervisor.sock не создается, хотя supervisor явно работает? Все советы приветствуются!

3 ответа3

4

Хорошо, после возни еще немного я нашел то, что я сделал не так.

Выясняет строки для supervisorctl ниже, только сообщите supervisorctl где он может найти файл сокета.

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock

Далее в файле есть две другие строки, которые определяют, где файл фактически создается:

[unix_http_server]
file=/tmp/supervisor.sock

Как вы можете видеть, что создал файл сокета в /tmp/ то время как supervisorctl попытался прочитать его из /var/run/ . Я изменил последнюю строку на file=/var/run/supervisor.sock и теперь он работает прекрасно.

Я надеюсь, что этот ответ может помочь кому-то еще иметь дело с той же проблемой.

Кроме того, вы можете проверить ссылку, предоставленную @MariusMatutiae в комментариях: https://stackoverflow.com/questions/10716159/nginx-and-supervisor-setup-in-ubuntu

2

Для пользователей, имеющих одинаковую запись для обоих

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock

&

[unix_http_server]
file=/tmp/supervisor.sock

следуйте приведенным ниже инструкциям, чтобы решить проблему -

  1. Удалить .sock файл из /tmp
  2. Запустите команду 'supervisord'. Это восстановит файл носка.
  3. Запустите 'supervisorctl -i', чтобы проверить состояние служб.

Надеюсь, это поможет вам!

-1

Обновите его до MacOS Sierra 10.12.5.

Я столкнулся с той же проблемой, и все было правильно в файле конфигурации. Позже я понял, что перешел на последнюю версию MacOS Sierra 10.12.3, и тогда это не сработало. Он работал над старой версией, но не над этой конкретной версией MacOS. Затем я обновил его до MacOS Sierra 10.12.5, и все, кажется, работает нормально.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .