Ошибка сокета сокета Supervisor

$ supervisorctl reread
error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.6/socket.py line: 567

Я пытаюсь настроить супервизор на моей производственной системе, но нажимаю эту ошибку. Файл журнала супервизора пуст.

Когда я просто набираю supervisorctl, он жалуется:

http://localhost:9001 refused connection

Ничего в настоящее время не прослушивает порт 9001, AFACT: lsof | grep TCP ничего не возвращает.

Ответ 1

Вы должны начать супервизор, прежде чем сможете использовать supervisorctl. В моем случае:

sudo supervisord -c /etc/supervisor/supervisord.conf
sudo supervisorctl -c /etc/supervisor/supervisord.conf

Ответ 2

Если вы начали супервизор с пользовательским путем, например:

sudo supervisord -c /mypath/supervisord.conf

Затем вы также должны запустить supervisorctl с тем же параметром, например:

sudo supervisorctl -c /mypath/supervisord.conf

Ответ 3

Вы можете получить эту проблему, если вы начнете супервизор с относительным URL-адресом для -c, а затем попробуйте запустить supervisorctl из другого каталога.

Например:

supervisord -c supervisord.conf
supervisorctl start someapp ## works 
cd somedirectory
supervisorctl restart someapp ## http://localhost:9001 refused connection

Решение было бы всегда использовать абсолютный путь. например:.

Хорошо:

supervisord -c /etc/supervisor/supervisord.conf

Плохо:

supervisord -c supervisord.conf

Ответ 4

Эта проблема также возникает, когда используется старый файл supervisord.conf. В более новой версии диспетчера используется другой файл конфигурации. Вышеупомянутые решения не работают. В этом случае вам просто нужно восстановить файл конфигурации с помощью

echo_supervisord_conf > /etc/supervisord.conf

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

Ответ 5

сделайте следующее:

sudo service supervisor start

сообщение, в котором все нормально, как b4 - есть проблема с версией 1b

sudo supervisorctl reload

Ответ 6

В Ubuntu 18.04 с дистрибутивом

Вы, вероятно, сделали ту же ошибку, что и я, и создали файл конфигурации /etc/supervisord.conf пока мой менеджер служб (systemd) использовал файл конфигурации /etc/supervisor/supervisord.conf

sudo rm/etc/supervisord.conf

Или же

sudo mv/etc/supervisord.conf/etc/supervisor/supervisord.conf

если ты хочешь сохранить это

Теперь вы можете запустить sudo supervisorctl


Зачем?

когда вы запускаете supervisorctl он сначала ищет файл конфигурации, расположенный в /etc/supervisord.conf, если он не присутствует, он ищет файл пакета по умолчанию /etc/supervisor/supervisord.conf который фактически запускает systemd.

Systemd всегда использует файл /etc/supervisor/supervisord.conf независимо от существования другого файла.

Вы можете проверить, какой файл использует systemd, запустив sudo systemctl status supervisor

enter image description here В последней строке вы можете увидеть команду, где файл конфигурации жестко закодирован

Ответ 7

и supervisord и supervisorctl используйте -c с абсолютным пути к файлу конфигурации, убедитесь, что обе команды запускаются с одинаковой конфигурацией.