Пользуюсь супервизором уже больше года. Устанавливается из пакета Debian. Когда я на днях обновил пакет, что-то сломалось, и я не могу понять, что.
~> sudo supervisorctl status
http://localhost:9001 refused connection
~> cd /etc/supervisor
~> sudo supervisorctl status
# Works
В моем /etc/supervisor/supervisord.conf
, Я сказал супервизору использовать сокет unix следующим образом:
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock
Похоже, что когда я не внутри /etc/supervisor
папка, конфигурация просто не загружается и супервизор использует значения по умолчанию (http: // локальный: 9001 по умолчанию для serverurl
)
Я проверил, как пакет Debian запускает супервизор, и кажется, что путь к файлу конфигурации является абсолютным, поэтому я не понимаю, почему он не работает.
/usr/bin/python /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
У кого-нибудь есть такая же проблема или решение? Это очень раздражает, так как нарушает мои рецепты. Спасибо
РЕДАКТИРОВАТЬ:
Вот полное содержание /etc/supervisor/supervisord.conf:
[unix_http_server]
file=/var/run/supervisor.sock
chmod=0700
[supervisord]
logfile=/var/log/supervisor/supervisord.log
pidfile=/var/run/supervisord.pid
childlogdir=/var/log/supervisor
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock
[include]
files = /etc/supervisor/conf.d/*.conf
И вот запрошенные переменные:
~> which supervisorctl
/usr/bin/supervisorctl
~> which supervisord
/usr/bin/supervisord
~> supervisord --version
3.1.3
Решение на самом деле довольно простое. Supervisord
действительно начинается с /etc/supervisor/supervisord.conf
файл, но supervisorctl
теперь ожидает, что файл конфигурации будет сохранен в /etc/supervisord.conf
(как указано в официальной документации). Я не знаю почему это обновление сломалось supervisorctl
но это раздражало.
Решение :
# ln -s /etc/supervisor/supervisord.conf /etc/supervisord.conf