美文网首页
kill 子进程

kill 子进程

作者: Gin_714d | 来源:发表于2018-11-28 14:19 被阅读0次

起因:重启任务,但是log没有变更。
猜测:run.py 的进程不能被stop完全杀死


(zhekou) [root]# ps -aux|grep 'sources/run.py' | awk '{print $2}'|wc -l
50

kill run.py

(zhekou) [root]# ps -aux|grep 'sources/run.py' | awk '{print $2}'|wc -l
38

可以看到正常process数只有12。

stop 只能杀死主进程,没办法杀死子进程。

有时候用 Supervisor 托管的程序还会有子进程(如 Tornado),如果只杀死主进程,子进程就可能变成孤儿进程。通过这两项配置来确保所有子进程都能正确停止:

stopasgroup=true
killasgroup=true

Tips1

配置 解释参考
;stopasgroup=false 这个东西主要用于,supervisord管理的子进程,这个子进程本身还有子进程。那么我们如果仅仅干掉supervisord的子进程的话,子进程的子进程有可能会变成孤儿进程。所以咱们可以设置可个选项,把整个该子进程的整个进程组都干掉。 设置为true的话,一般killasgroup也会被设置为true。需要注意的是,该选项发送的是stop信号默认为false。。非必须设置。。
;killasgroup=false 这个和上面的stopasgroup类似,不过发送的是kill信号

Tips 2: 后台进程
Supervisor 只能管理在前台运行的程序,所以如果应用程序有后台运行的选项,需要关闭。


更多可以做的: 进程数监控。防止supervisor进程异常

配置参考

相关文章

网友评论

      本文标题:kill 子进程

      本文链接:https://www.haomeiwen.com/subject/miyaqqtx.html