有没有办法使用终端杀死进程树?
通过杀死进程树,我的意思是杀死进程的所有后代以及进程本身。
我标记这个问题htop是因为这些天我经常使用该实用程序,如果有一种简单的方法来杀死内部的进程树htop(比只选择子树中的所有进程更好),那就太酷了。
小智 6
htop 长期以来一直有一个功能,但直到 2018 年才从手册中消失:按 键c选择当前突出显示的进程及其所有子进程。然后,适用于选定进程的操作(例如使用密钥进行终止k)适用于该进程及其子进程。
但这不是原子的。如果在您按下按钮c和内核杀死所有进程之间产生了新的子进程,它们将不会被杀死,并且很可能最终会重新附加到 init 进程。这是因为 htop 正在循环选择进程并一一杀死它们。
不久前,我提出了一个补丁,为 htop 添加原子组杀死功能,但实现方式尚未达成共识,无法合并。有了它,就可以从 htop 以原子方式杀死整个进程组。这与杀死整棵树并不完全相同,但是据我所知,内核没有提供任何方法来自动杀死任意树。
小智 5
这应该对你有帮助!
pkill -TERM -P `PID`
Run Code Online (Sandbox Code Playgroud)