unix: ///var/run/supervisor.sock такого файла нет

12563
kramer65

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

un my 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 явно работает? Все советы приветствуются!

5
Вы видели этот пост? http://stackoverflow.com/questions/10716159/nginx-and-supervisor-setup-in-ubuntu Вы пробовали какие-либо из его решений? Они работают? Если они не делают, как они терпят неудачу? MariusMatutiae 8 лет назад 0

3 ответа на вопрос

4
kramer65

Alright, after messing around some more I found what I did wrong.

Turns out the lines for supervisorctl below, only tell supervisorctl where it can find the socket file.

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

Further above in the file there are two other lines which define where the file is actually created:

[unix_http_server] file=/tmp/supervisor.sock 

As you can see that created the socket file in /tmp/ while supervisorctl tried to read it from /var/run/. I changed the last line to file=/var/run/supervisor.sock and now it works beatifully.

I hope this answer might help someone else dealing with the same trouble.

Also, you can check out the link provided by @MariusMatutiae in the comments: https://stackoverflow.com/questions/10716159/nginx-and-supervisor-setup-in-ubuntu

Я вижу, что страница, которую я предложил, содержала правильное решение для вас, http://stackoverflow.com/a/28469044/2796243. Я рад видеть, что смог помочь, ура. MariusMatutiae 7 лет назад 1
@MariusMatutiae - Да, действительно, я мог бы не дать вам признание, которое вы заслужили. Так что большое спасибо вам! Обратите внимание, что я все еще рад дать вам 50 баллов. Просто напишите ответ, и я вознагражу его вам .. :-) kramer65 7 лет назад 0
Спасибо, очень мило с вашей стороны, но я ** не ** действительно нашел решение. Просто на приведенной выше странице содержится несколько разных решений, только одно из которых (к счастью) применимо к вам, но другим, читающим этот пост, может быть полезно знать, что другие решения могут быть доступны в случае необходимости. Это все. Приветствия. MariusMatutiae 7 лет назад 0
Я столкнулся с еще одной "забавной" проблемой. Не используйте папку tmp для файла сокета, так как он очищается автоматически, и файл сокета будет удален до следующего перезапуска супервизора. StalkAlex 7 лет назад 0
2
monothorn

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

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

&

[unix_http_server] file=/tmp/supervisor.sock 

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

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

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

-1
Isha

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

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