web-dev-qa-db-fra.com

Comment définir des variables d'environnement dans le service Superviseur

Comment exporter des variables d'environnement dans la commande exécutée par Supervisor? J'ai d'abord essayé:

command="export SITE=domain1; python manage.py command"

mais le superviseur signale "impossible de trouver la commande".

Alors j'ai essayé:

command=/bin/bash -c "export SITE=domain1; python manage.py command"

et la commande s'exécute, mais cela semble interférer avec la démonisation puisque lorsque j'arrête le démon Superviseur, tous les autres démons qu'il exécute ne sont pas arrêtés.

49
Cerin

Pour ajouter une seule variable d'environnement, vous pouvez faire quelque chose comme ça.

[program:Django]
environment=SITE=domain1
command = python manage.py command

Mais, si vous souhaitez exporter plusieurs variables d'environnement, vous devez les séparer par des virgules.

[program:Django]
environment = 
    SITE=domain1,
    Django_SETTINGS_MODULE=foo.settings.local,
    DB_USER=foo,
    DB_PASS=bar
command = python manage.py command
87
ChillarAnand

Faites-le séparément:

environment=SITE=domain1
command=python manage.py command

Reportez-vous à http://supervisord.org/subprocess.html#subprocess-environment pour plus d'informations.

15
neko_ua