如何杀死所有没有特定父进程的进程?

bba*_*a42 1 process kill

父进程应始终与 N 个子进程一起运行。

我想运行一个脚本来显示/杀死所有没有父进程的子进程。

$ ps faux | grep process.pl
root 37140  0.3  0.1  61160 724   /process.pl [child]
root 22079 10.2  0.3 127332 64620 /process.pl [master]
root 22081  0.3  0.1  84752 26084   \_ /process.pl [child]
Run Code Online (Sandbox Code Playgroud)

War*_*ung 7

pkill 可能在这里工作:

$ pkill -P 1 process.pl
Run Code Online (Sandbox Code Playgroud)

这会杀死所有命名process.pl其父进程为PID 1 的进程,这就是进程的父进程死亡时发生的情况。

  • (假设 _parent_ `process.pl` 本身也没有被 `init` 重新父化)。请注意,`pkill process.pl` 将匹配名称包含`process` 后跟任何字符后跟`pl` 的任何进程。对于名称为**`process.pl` 的进程,您需要`pkill -x 'process\.pl'` 或`pkill '^process\.pl$'`。 (4认同)