私がsupervisordで直面している問題の1つは、別のプロセスを生成するコマンドがある場合、supervisordがそれを強制終了できないことです。
たとえば、正常に実行されると次のようなJavaプロセスがあります
$ zkServer.sh start-foreground
$ ps -eaf | grep zk
user 30404 28280 0 09:21 pts/2 00:00:00 bash zkServer.sh start-foreground
user 30413 30404 76 09:21 pts/2 00:00:10 java -Dzookeeper.something..something
Supervisord 構成ファイルは次のようになります。
[program:zookeeper]
command=zkServer.sh start-foreground
autorestart=true
stopsignal=KILL
複数の子を持つこの種のプロセスは、それらを から停止する場合、supervisord によって適切に処理されませんsupervisorctl。したがって、supervisord からこれを実行し、supervisorctl から停止しようとすると、最上位プロセスのみが強制終了されますが、実際の Java プロセスは強制終了されません。