web-dev-qa-db-fra.com

Supervision virtualenv Django app via superviseur

J'essaie d'utiliser le superviseur pour gérer mon projet Django exécutant gunicorn à l'intérieur d'un virtualenv. Mon fichier conf ressemble à ceci:

[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

Le problème est que j'ai besoin d'un superviseur pour lancer la commande après avoir exécuté "source bin/activate" dans mon virtualenv. J'ai traîné sur Google pour essayer de trouver une réponse, mais je n'ai rien trouvé.

Remarque: je ne veux pas utiliser virtualenvwrapper

Vous avez besoin d'aide?

47
Oleiade

Le documentation pour le script virtualenv activate indique qu'il ne modifie que la variable d'environnement PATH, auquel cas vous pouvez faire:

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

Depuis la version 3.2, vous pouvez également utiliser extension variable pour conserver le PATH existant:

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

...

82