2012-09-01 12 views
12

Im tratando de hacer la implementación automática, incluida la supervisión y la confusión por la ruta de configuración predeterminada.supervisor.conf ubicación predeterminada

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

En este flujo example se parece a esto sin ningún tipo de enlaces y la creación de 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 este camino no se especifica como defecto y se asume que la ubicación por defecto en algún lugar vamos envejeciendo /etc/supervisor.conf así como se especifica en manual

He intentado instalar al supervisor de todas las maneras posibles pero no puedo obtener el resultado.

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

Respuesta

15

Normalmente el archivo por defecto es de hecho /etc/supervisor.conf, pero el Debian distribution patches this (enlace al parche gzipped conforme a lo dispuesto por Debian) para buscar /etc/supervisor/supervisor.conf primera:

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

Así que con ese parche, 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 

supervisord causando a cargar los archivos adicionales puesto en el directorio conf.d.

+0

¡Muchas gracias! Revisé lo que cambiaba la instalación del paquete en mi servidor, por lo que la razón es que se está instalando parcialmente (tal vez pythonbrew es la razón por la que quizás algo más) y el parche no se está aplicando. – mrjj

+0

Buen hallazgo. Me preguntaba cómo la versión de Ubuntu buscaba /etc/supervisor/supervisor.conf. – fthinker

1

que puedan estar instalados de supervisión a través de pepita y por lo tanto tener la versión sin modificaciones en

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

teniendo precedance sobre la versión parcheada en

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

Véase la respuesta de Martjin para obtener detalles sobre la parche. La solución más sencilla es:

pip uninstall supervisor

vuelva a ejecutar el paquete de instalación en caso de que se instaló sólo parcialmente:

apt-get install supervisor

También asegúrese de que su /etc/supervisor/supervisord.conf está presente.Si no es así, puede que tenga que volver a crear manualmente, la mía tiene el siguiente 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 
0

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

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

  1. $ CWD/supervisord.conf
  2. $ CWD/etc/supervisord.conf
  3. /etc/supervisord.conf
  4. /etc/supervisor/supervisord.conf (ya Supervisor 3.3.0)
  5. ../etc/supervisord.conf (relativo a la ejecutable)
  6. ../supervisord.conf (relativa al ejecutable)
Cuestiones relacionadas