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

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

我想杀死整个过程树。使用任何普通的脚本语言做这件事的最佳方法是什么?我正在寻找一个简单的解决方案。



一只斗牛犬
浏览 425回答 3
3回答

aluckdog

你不会说你想要杀死的树是一个单一的进程组。(如果树是服务器启动或shell命令行分叉的结果,则通常是这种情况。)您可以使用GNU PS发现流程组,如下所示: ps x -o  "%p %r %y %x %c "如果它是要杀死的进程组,只需使用kill(1)命令,但不是给它一个进程号,而是将否定组号。例如,要杀死组5112中的每个进程,请使用kill -TERM -- -5112.

婷婷同学_

pkill -TERM -P 27888这将杀死具有父进程ID 27888的所有进程。或者更强壮:CPIDS=$(pgrep -P 27888); (sleep 33 && kill -KILL $CPIDS &); kill -TERM $CPIDS计划在33秒后终止,并礼貌地要求进程终止。看见这个答案因为终止了所有的后代。
打开App,查看更多内容
随时随地看视频慕课网APP