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

Местоположение по умолчанию supervisor.conf

Я пытаюсь сделать автоматическое развертывание, включая супервизор, и путается по умолчанию.

Каждая схема развертывания, которую я нашел, использует /etc/supervisor/supervisor.conf и /etc/supervisor/conf.d/ без каких-либо предварительных настроек и ссылок, также после установки пакета супервизора через apt-get этот путь действительно заполняется конфигурацией примера.

В этом пример поток выглядит так без ссылок и создания чего-либо типа /etc/supervisor.conf:

sudo('apt-get -y install supervisor')
put('config/supervisor_gunicorn.conf', '/etc/supervisor/conf.d/gunicorn.conf', use_sudo=True)
sudo('supervisorctl reload')

Но в supervisorctl этот путь не указан по умолчанию, и он предположил, что местоположение по умолчанию где-то aroud /etc/supervisor.conf, как указано в manual

Я пытаюсь установить супервизор всеми возможными способами, но я не могу получить результат.

Я знаю, что это всего лишь небольшая глупая деталь, но я буду очень благодарен за вашу помощь в поддержании моей схемы развертывания.

4b9b3361

Ответ 1

Обычно файл по умолчанию действительно /etc/supervisor.conf, но дистрибутив Debian исправляет это (ссылка на патч gzipped, предоставленный Debian), чтобы искать /etc/supervisor/supervisor.conf первый:

--- supervisor-3.0a8.orig/src/supervisor/options.py
+++ supervisor-3.0a8/src/supervisor/options.py
@@ -105,7 +105,7 @@
     def default_configfile(self):
         """Return the name of the found config file or raise. """
         paths = ['supervisord.conf', 'etc/supervisord.conf',
-                 '/etc/supervisord.conf']
+                 '/etc/supervisor/supervisord.conf', '/etc/supervisord.conf']
         config = None
         for path in paths:
             if os.path.exists(path):

Итак, с этим патчем супервизор ищет supervisord.conf в локальном каталоге, в подкаталоге etc/, затем в глобальных каталогах /etc/supervisor/ и /etc/.

По умолчанию файл supervisord.conf, установленный Debian, имеет это в конце:

[include]
files = /etc/supervisor/conf.d/*.conf

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

Ответ 2

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

/usr/local/lib/python2.7/dist-packages/supervisor/

имеет приоритет над исправленной версией в

/usr/lib/pymodules/python2.7/supervisor

См. ответ Martjin для получения подробных сведений о патче. Простое решение:

pip uninstall supervisor

Затем запустите пакетную установку, если она была только частично установлена:

apt-get install supervisor

Также убедитесь, что ваш /etc/supervisor/supervisord.conf присутствует. Если нет, вам может понадобиться вручную его восстановить, мой выглядит следующим образом:

; supervisor config file

[unix_http_server]
file=/var/run//supervisor.sock   ; (the path to the socket file)
chmod=0700                       ; sockef file mode (default 0700)

[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)

; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run//supervisor.sock ; use a unix:// URL  for a unix socket

; The [include] section can just contain the "files" setting.  This
; setting can list multiple files (separated by whitespace or
; newlines).  It can also contain wildcards.  The filenames are
; interpreted as relative to this file.  Included files *cannot*
; include files themselves.

[include]
files = /etc/supervisor/conf.d/*.conf

Ответ 3

Из фактической документации ze: http://supervisord.org/configuration.html#configuration-file

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

  • $CWD/supervisord.conf
  • $CWD/etc/supervisord.conf
  • /etc/supervisord.conf
  • /etc/supervisor/supervisord.conf(начиная с Supervisor 3.3.0)
  • ../etc/supervisord.conf(Относительно исполняемого файла)
  • ../supervisord.conf(Относительно исполняемого файла)