Подтвердить что ты не робот

Supervisorctl не соблюдает мою конфигурацию

Я установил в /home/david/conf/supervisor.conf следующее:

[unix_http_server]
file=/home/david/tmp/supervisor.sock

[supervisord]
logfile=/home/david/tmp/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=/home/david/tmp/supervisord.pid  ; (supervisord pidfile;default supervisord.pid)
nodaemon=false                           ; (start in foreground if true;default false)
minfds=1024                              ; (min. avail startup file descriptors;default 1024)
minprocs=200
childlogdir=/home/david/tmp

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

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

И начал supervisord:

$ supervisord -c /home/david/conf/supervisor.conf

Однако как получилось, что supervisorctl по умолчанию использует http://localhost:9001 как serverurl?

$ supervisorctl
http://localhost:9001 refused connection
supervisor>

Я проверил /home/david/tmp и файлы supervisord.log и supervisord.pid действительно существуют.

4b9b3361

Ответ 1

Вы должны запустить supervisorctl с помощью -c. Из документации (мой акцент):

Файл конфигурации Supervisor условно назван supervisord.conf. Он используется как supervisord, так и supervisorctl. Если либо приложение запускается без опции -c (опция, которая используется для указания приложению имени файла конфигурации явно), приложение будет искать файл с именем supervisord.conf в следующих местах, в указанном заказ. Он будет использовать первый найденный файл.

  • $CWD/supervisord.conf
  • $CWD/etc/supervisord.conf
  • /etc/supervisord.conf

Ответ 2

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

Ответ 3

В качестве решения вы можете сделать символическую ссылку на файл конфигурации. Как это для Mac OS:

sudo ln -sv/usr/local/etc/supervisord.ini/etc/supervisord.conf

Ответ 4

  • В MacOS используйте brew для установки
 brew install supervisor
  • Затем перейдите к /usr/local/etc/supervisord.ini и прокомментируйте эти строки:
;[unix_http_server]
;file=/usr/local/var/run/supervisor.sock   ; the path to the socket file

и раскомментируйте эти строки:

[inet_http_server]         ; inet (TCP) server disabled by default
port=127.0.0.1:9001        ; ip_address:port specifier, *:port for all iface
  • Наконец, перезапустите демон:
brew services restart supervisor

Это все, что вам нужно.