supervisor.conf ubicación predeterminada

Estoy tratando de hacer una implementación automática, incluyendo supervisor y confundido por la ruta de configuración predeterminada.

Cada esquema de implementación que encontré usa /etc/supervisor/supervisor.conf y /etc/supervisor/conf.d/ sin ningún ajuste /etc/supervisor/conf.d/ ni enlaces, también, después de instalar el paquete supervisor a través de apt-get, esta ruta se llena con la configuración de ejemplo.

En este ejemplo, el flujo se ve así sin ningún enlace y la creación es algo como /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') 

Pero en supervisorctl esta ruta no se especifica como predeterminada y se asume que la ubicación predeterminada en algún lugar está en /etc/supervisor.conf tal como se especifica en el manual

Intenté instalar el supervisor de todas las formas posibles pero no puedo obtener resultados.

    Sé que esto es solo un pequeño detalle estúpido, pero estaré muy agradecido por su asistencia para mantener mi esquema de implementación en buen estado.

    Normalmente, el archivo predeterminado es de hecho /etc/supervisor.conf , pero la distribución de Debian parchea esto (enlace al parche comprimido con gzip provisto por Debian) para buscar /etc/supervisor/supervisor.conf primero:

     --- 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): 

    Entonces, con ese parche, el supervisor busca supervisord.conf en el directorio local, en el subdirectorio etc/ , luego en los directorios globales /etc/supervisor/ y /etc/ .

    El archivo predeterminado supervisord.conf instalado por Debian tiene esto al final:

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

    haciendo que conf.d cargue cualquier archivo adicional puesto en el directorio conf.d

    Es posible que haya instalado supervisor a través de pip y, por lo tanto, tenga la versión sin parchear en

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

    tomando precedencia sobre la versión parcheada en

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

    Vea la respuesta de Martjin para detalles sobre el parche. La solución simple es:

    pip uninstall supervisor

    Luego vuelva a ejecutar la instalación del paquete en caso de que se haya instalado parcialmente:

    apt-get install supervisor

    También asegúrese de que su /etc/supervisor/supervisord.conf esté presente. Si no es así, es posible que necesites volver a crearlo manualmente, el mío tiene este aspecto:

     ; 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 

    De la documentación actual de ze: http://supervisord.org/configuration.html#configuration-file

    El archivo de configuración de Supervisor se denomina convencionalmente supervisord.conf. Es utilizado tanto por supervisord como por supervisorctl. Si cualquiera de las aplicaciones se inicia sin la opción -c (la opción que se usa para indicar explícitamente a la aplicación el nombre de archivo de configuración), la aplicación buscará un archivo llamado supervisord.conf dentro de las siguientes ubicaciones, en el orden especificado. Utilizará el primer archivo que encuentre.

    1. $ CWD / supervisord.conf
    2. $ CWD / etc / supervisord.conf
    3. /etc/supervisord.conf
    4. /etc/supervisor/supervisord.conf (desde Supervisor 3.3.0)
    5. ../etc/supervisord.conf (Relativo al ejecutable)
    6. ../supervisord.conf (relativo al ejecutable)