web-dev-qa-db-ja.com

スーパーバイザーサービスで環境変数を設定する方法

スーパーバイザーによって実行されるコマンドの環境変数をどのようにエクスポートしますか?私が最初に試した:

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

しかし、スーパーバイザーは「コマンドが見つかりません」と報告します。

それで私は試しました:

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

コマンドは実行されますが、スーパーバイザーデーモンを停止しても、実行中の他のすべてのデーモンは停止されないため、これはデーモン化を妨げるようです。

49
Cerin

単一の環境変数を追加するには、次のようなことができます。

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

ただし、複数の環境変数をエクスポートする場合は、コンマで区切る必要があります。

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

別々に行うだけです:

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

詳細については、 http://supervisord.org/subprocess.html#subprocess-environment を参照してください。

15
neko_ua