私は[program:A]
、[program:B]
supervisord.conf に
B
依存A
、意味:
A
の前に開始する必要がありB
ます。
スーパーバイザーがこれを保証する方法は?
私は[program:A]
、[program:B]
supervisord.conf に
B
依存A
、意味:
A
の前に開始する必要がありB
ます。
スーパーバイザーがこれを保証する方法は?
supervisord
依存関係を直接サポートしていません。代わりのオプションは次のとおりです。
優先順位を使用します。を低い値に設定priority
すると、 の前に開始され、 の後にシャットダウンされます。のデフォルト値はです。A
B
B
priority
999
2 つのプログラムを 1 つのグループに入れると、開始と停止の順序を優先順位で調整して、同時に開始と停止を行うことができます。
-to- transition とのイベントをリッスンするイベント リスナーを作成し、それらのイベントに従って開始と停止を指示します。の自動起動を行いますが、イベント ハンドラが制御できるように自動起動を無効にします。PROCESS_STATE
STARTING
RUNNING
STOPPING
A
supervisord
B
A
B
これは私にとって素晴らしい解決策です!
私が使用した回避策は
autostart=false
、プロセスを設定してから、ブートストラップ スクリプトをautostart=true
and で作成することですautorestart=false
(ワンショット)。supervisorctl start
ブートストラップは、各プロセスを呼び出すシェル スクリプトにすることができます。supervisorctl start
プロセスが正常に開始されるまでブロックします。