Вопрос: Проблема сервера HTTP-сервера супервизора


У меня есть настройка диспетчера для управления несколькими процессами. Он работает отлично, когда я загружаю свой сервер, однако, когда я его останавливаю и пытаюсь запустить его снова, он терпит неудачу и даст мне эту ошибку. Msg:

 * Запуск диспетчера демона диспетчера ...
Ошибка. Еще одна программа уже прослушивает порт, который настроен для использования одним из наших HTTP-серверов. Сначала закройте эту программу, прежде чем запускать супервизор.
Для получения справки используйте / usr / bin / supervisord -h
   ...потерпеть неудачу!

Я запускаю nginx на порту 80 и 4 веб-серверах на портах 8000, 8001, 8002, 8003

Кто-нибудь имеет представление о том, что происходит?

Когда я перезагружаюсь, все работает нормально.


63
2018-02-19 00:33


Источник




Ответы:


Просто наткнулся на это. Я исправил это, выполнив одно из следующих действий:

sudo unlink /tmp/supervisor.sock

sudo unlink /var/run/supervisor.sock

Этот файл .sock определяется в файле конфигурации файла /etc/supervisord.conf's [unix_http_server] (по умолчанию это /tmp/supervisor.sock или /var/run/supervisor.sock).

Надеюсь, это поможет кому-то в будущем.


90
2018-05-02 17:59



@sdolan Ничего себе это помогло мне! Я удалил /var/run/supervisor.sock и избавился от ошибки в Debian Stable - Abhishek A
запустите find / -name supervisor.sock, прежде чем запускать unlink - на дебианских системах он находится в / var / run /, но ваше решение для разблокировки работало для меня - AndrewPK
Почему диспетчер не завершает работу с кодом ошибки, чтобы сценарии могли автоматически отключиться и повторить попытку? - Tal Weiss
Будьте осторожны. После разблокировки запустите «ps -ef | grep supervisord», и вы увидите, что старый процесс все еще запущен. Вы также можете «убить <process_id>». EDIT: Это был мой случай при использовании Ubuntu 14.04. - jball037
После команды unlink я пытаюсь перезапустить диспетчер, но теперь пропущен .sock. unix:///tmp/supervisor.sock no such file, Так что еще мне нужно сделать. - Robert


Я бы использовал lsof, чтобы узнать, какой процесс прослушивает эти порты.

lsof -i tcp | grep LISTEN

Как только вы определили, какой процесс это, это половина битвы.


6
2018-02-19 13:03