supervisorctl 3.3.1 http://localhost:9001 отказал в соединении

root@dev-demo-karl:/srv/www# supervisord -v
3.3.1

Пытаясь получить supervisorctl за работой:

root@dev-demo-karl:/srv/www# supervisorctl
http://localhost:9001 refused connection

Мой конфиг:

[supervisord]
nodaemon=true

[supervisorctl]

4 ответа

Решение

Видимо, есть обязательные поля для файла конфигурации для версии 3.0 и выше http://supervisord.org/configuration.html

[inet_http_server] необходимо:

Хост TCP: значение порта или (например, 127.0.0.1:9001), на котором супервизор будет прослушивать запросы HTTP/XML-RPC. supervisorctl будет использовать XML-RPC для связи с supervisord через этот порт. Чтобы прослушивать все интерфейсы в машине, используйте: 9001 или *:9001.

По умолчанию: нет по умолчанию.

Требуется: да.

Введено: 3.0

Также требуется [rpcinterface:supervisor], поскольку он жалуется.

Поэтому моя конфигурация должна выглядеть так:

[supervisord]
nodaemon=true

[supervisorctl]

[inet_http_server]
port = 127.0.0.1:9001

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

Теперь это соединяет.

Не забудьте проверить следующее, если вы получаете http://localhost:9001 refused connection ошибка.

  1. Удостовериться supervisord бежит
  2. Включите их (без комментариев) в supervisord.conf файл:
    а)

    [inet_http_server]         
    port=127.0.0.1:9001
    

    б)

    [supervisorctl]
    serverurl=http://127.0.0.1:9001
    

    с)

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

Примечание: хост и порт сервера inet и тот, к которому пытается подключиться supervisorctl, должны быть одинаковыми.

Сначала вы должны начать supervisord с -c отметьте и укажите файл cfg.

sudo supervisord -c /path/to/config/file

после этого запуска supervisorctl

Попробуй запустить supervisord с sudo чтобы убедиться, что это не проблема представления. Если все работает правильно, вы можете запустить приложение без sudo,

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

По умолчанию inet_http_server отключен в конфигурации супервизора. Вам нужно включить, если существует, или добавить следующие строки, если это не так

[inet_http_server] port = 127.0.0.1:9001

Затем перезапустите Supervisord; Вы должны быть все готово sudo supervisorctl status должен показывать процессы с соответствующими статусами

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