2011-06-30 18 views
45

Estoy tratando de usar supervisor para gestionar mi proyecto django ejecutando gunicornio dentro de un virtualenv. Mi archivo de configuración es el siguiente:Supervisión de la aplicación django virtualenv a través del supervisor

[program:diasporamas] 
command=/var/www/django/bin/gunicorn_django 
directory=/var/www/django/django_test 
process_name=%(program_name)s 
user=www-data 
autostart=false 
stdout_logfile=/var/log/gunicorn_diasporamas.log 
stdout_logfile_maxbytes=1MB 
stdout_logfile_backups=2 
stderr_logfile=/var/log/gunicorn_diasporamas_errors.log 
stderr_logfile_maxbytes=1MB 
stderr_logfile_backups=2enter code here 

El problema es que necesito supervisor para lanzar el comando después de que se ha ejecutado 'fuente bin/Activar' en mi virtualenv. Estuve dando vueltas por google tratando de encontrar una respuesta, pero no encontré nada.

Nota: No quiero utilizar virtualenvwrapper

Cualquier ayuda por favor?

Respuesta

82

El documentation para los virtualenv activar guión dice que sólo se modifica la variable de entorno PATH, en cuyo caso se puede hacer:

[program:diasporamas] 
command=/var/www/django/bin/gunicorn_django 
directory=/var/www/django/django_test 
environment=PATH="/var/www/django/bin" 
... 

Desde la versión 3.2 se puede utilizar variable expansion para preservar la ruta existente también:

[program:diasporamas] 
command=/var/www/django/bin/gunicorn_django 
directory=/var/www/django/django_test 
environment=PATH="/var/www/django/bin:%(ENV_PATH)s" 

...

+0

parece funcionar :) habían leído algo acerca de la gestión envs pero no encontró la manera de aplicarlo. ¡Gracias enserio! – Oleiade

+0

@ serge-s @ michał-modzelewski ¿Pero esto no sobrescribe la variable de entorno 'PATH'? Si ese es el caso, ¿no afectará eso a la ruta de búsqueda de otros archivos binarios que no se encuentran en ese directorio? Por ejemplo, en Ubuntu Linux, el 'PATH' es' /home/user_name/bin:/home/user_name/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/juegos:/usr/local/juegos:/snap/bin'. Si no se encuentra algún binario en la RUTA sobrescrita, debe buscarse en los directorios especificados en la RUTA original. ¿Hay alguna forma de anexar a la ruta en la configuración del supervisor (por ejemplo, mediante el formato de cadenas)? –

+0

@LokeshMeher Esta respuesta es bastante antigua. Desde entonces, el supervisor agregó una opción para usar variables de entorno en la configuración. Actualicé la respuesta con una versión que incluye la RUTA original. –

Cuestiones relacionadas