Ошибка Supervisorctl: unix:///var/run/supervisord.sock отклонил соединение?

Это мой конфиг flie.Я запускаю supervisord -c /etc/supervisor/supervisord.conf это работает хорошо. Когда я пытаюсь бежать supervisorctl -c /etc/supervisor/supervisord.conf, ошибка произошла:

Ошибка:, неизвестный протокол для serverurl /var/run/supervisord.sock: файл: /usr/local/lib/python2.7/dist-packages/supervisor-3.0b2-py2.7.egg/supervisor/xmlrpc.py line: 440

Я могу запустить или остановить свою программу через http://127.0.0.1:9001 отлично, но я хочу управлять программой из командной строки. Кто-нибудь может мне помочь?

[unix_http_server]
file = /var/run/supervisor.sock
chmod = 0777
chown= root:cruelcage

[inet_http_server]
port=9001
username = cruelcage
password = 123

[supervisorctl]
serverurl = /var/run/supervisord.sock

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisord]
logfile=/home/cruelcage/log/supervisord/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB       ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10          ; (num of main logfile rotation backups;default 10)
loglevel=info               ; (log level;default info; others: debug,warn,trace)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=true              ; (start in foreground if true;default false)
minfds=1024                 ; (min. avail startup file descriptors;default 1024)
minprocs=200                ; (min. avail process descriptors;default 200)
#user=root                 ; (default is current user, required if root)
childlogdir=/home/cruelcage/log/supervisord/            ; ('AUTO' child log dir, default $TEMP)

[program:config]
command=python /home/cruelcage/documents/config/config.py
autostart = true
startsecs = 5
user = cruelcage
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdoiut_logfile_backups = 20
stdout_logfile = /home/cruelcage/log/debug.log

3 ответа

Решение

Ваш [supervisorctl]serverurl должно быть "unix: ///var/run/supervisord.sock", поскольку "/var/run/supervisord.sock" не является допустимым URI для xmlrpclib подключиться к.

echo_supervisord_conf > /etc/supervisord.conf
sudo supervisord -c /etc/supervisord.conf
sudo supervisorctl status

Я имел эту проблему и обнаружил, что это произошло после перезапуска сервера. Когда супервизор попытался перезапустить после этого, он не смог найти каталог журнала, который был указан в моем файле конфигурации демона (эта проблема не появлялась во время работы супервизора).

Все, что мне нужно было сделать, это изменить путь stdout_logfile (или закомментировать строку) в моем файле:

(поменяйте ##### для вашего идентификатора файла)

sudo nano /etc/supervisor/conf.d/daemon-#####.conf

Добавьте существующий путь к файлу журнала или закомментируйте строку с # в начале строки:

#stdout_logfile=/my/bad/log/directory

Затем перезапустите супервизор

sudo service supervisor restart

Другие вопросы по тегам