相关疑难解决方法(0)

监督停止子进程

我面对的一个问题是,当我有一个命令反过来产生另一个进程时,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
Run Code Online (Sandbox Code Playgroud)

supervisord配置文件如下所示:

[program:zookeeper]
command=zkServer.sh start-foreground
autorestart=true
stopsignal=KILL
Run Code Online (Sandbox Code Playgroud)

当涉及到阻止它们时,这些具有多个孩子的过程在监督下不能很好地处理supervisorctl.因此,当我从supervisord运行它并尝试从supervisorctl停止它时,只有顶级进程被杀死但不是实际的java进程.

bash supervisord ubuntu-11.04 apache-zookeeper

54
推荐指数
4
解决办法
2万
查看次数