bash – supervisord停止子进程
发布时间:2020-12-15 16:17:54 所属栏目:安全 来源:网络整理
导读:其中一个问题,我面对supervisord是,当我有一个命令,反过来又产生另一个过程,supervisord不能够杀死它。 例如我有一个java进程,当运行正常是喜欢 $ zkServer.sh start-foreground $ ps -eaf | grep zk user 30404 28280 0 09:21 pts/2 00:00:00 bash zkS
其中一个问题,我面对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 这些具有多个孩子的过程不能很好地由supervisord处理,当它停止从supervisorctl。所以当我从supervisord运行这个,并试图停止它从supervisorctl,只有顶级进程被杀死,但不是实际的java进程。
Rick Hanlon II在这里遇到了同样的问题:
https://coderwall.com/p/4tcw7w
应该在supervisord的程序部分中设置选项stopasgroup = true,以便不仅停止父进程,而且停止子进程。 示例给出: [program:some_django] command=python manage.py runserver directory=/dir/to/app stopasgroup=true 另外,记住,你可能有一个较旧的supervisord包没有“stopasgroup”功能。 > supervisor_3.0a8不工作。> supervisor_3.0b2-1按预期工作。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |