为了账号安全,请及时绑定邮箱和手机立即绑定

向流程组的所有成员发送信号的最佳方法是什么?

向流程组的所有成员发送信号的最佳方法是什么?

一只斗牛犬 2019-06-29 14:51:14
向流程组的所有成员发送信号的最佳方法是什么?我想杀死整个过程树。使用任何普通的脚本语言做这件事的最佳方法是什么?我正在寻找一个简单的解决方案。
查看完整描述

3 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

你不会说你想要杀死的树是一个单一的进程组。(如果树是服务器启动或shell命令行分叉的结果,则通常是这种情况。)您可以使用GNU PS发现流程组,如下所示:

 ps x -o  "%p %r %y %x %c "

如果它是要杀死的进程组,只需使用kill(1)命令,但不是给它一个进程号,而是将否定组号。例如,要杀死组5112中的每个进程,请使用kill -TERM -- -5112.


查看完整回答
反对 回复 2019-06-29
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

pkill -TERM -P 27888

这将杀死具有父进程ID 27888的所有进程。

或者更强壮:

CPIDS=$(pgrep -P 27888); (sleep 33 && kill -KILL $CPIDS &); kill -TERM $CPIDS

计划在33秒后终止,并礼貌地要求进程终止。

看见这个答案因为终止了所有的后代。


查看完整回答
反对 回复 2019-06-29
  • 3 回答
  • 0 关注
  • 424 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信