我与 supervisord 面临的一个问题是,当我有一个命令反过来产生另一个进程时,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
在阻止它们从supervisorctl
. 因此,当我从 supervisord 运行它并尝试从 supervisorctl 停止它时,只有顶级进程被杀死,而不是实际的 java 进程。