9

一部のアプリケーション設定をMYSQL_URL=mysql://などの環境変数に保存する予定です。supervisordを使用してアプリケーションプロセスを管理します。サブプロセスが開始される前に環境変数をロードする方法は?特にこれらの設定が変更された場合、サブプロセスを再起動すると新しい設定が読み込まれることを願っています。

また、これらの環境変数をどこに保存するのか疑問に思っています。「$(catfilename)をエクスポート」できるファイル?またはいくつかのより良い方法。Herokuが環境変数をどのように管理しているか興味があります。

4

2 に答える 2

21

[ ] セクションの Supervisord 構成でプロセスごとの環境変数を設定できますprogram:x。これらは、開始時にプロセスに渡されます。

[program:yourprocess]
# ... other settings
environment =
    MYSQL_URL=mysql://,
    OTHER_VAR="some other value"

各変数の間にコンマを使用する必要があることに注意してください。上記の例でも改行を使用しましたが、これらはオプションです。環境値にスペースがある場合は、値を引用符で囲む必要があります。

同じ形式を使用して、セクション内のすべてのプロセスの環境変数を設定することもできます。[supervisord]

最後になりましたが、supervisord の起動時に設定された環境変数はすべて、supervisord によって管理されるプロセスにも渡されます。詳細については、環境変数に関するドキュメントのセクションを参照してください。

構成ファイルで構成された環境変数を変更する場合は、これらの変更を取得するために、構成をリロードしてサブプロセスを再起動するように Supervisord に通知する必要があることに注意してください。

supervisorctl update
supervisorctl restart yourprocess

ただし、supervisord の外部で環境変数を変更する場合は、supervisord をすべてシャットダウンしてこれらを取得する必要があります。

supervisorctl shutdown
supervisord
于 2012-08-05T10:02:08.767 に答える