无论 GID 不同,杀死整个进程树

无论 GID 不同,杀死整个进程树

我在使用流程抽象可用的信号进行流程控制时遇到问题。在下面的示例中,您可以看到有一个perl脚本,它是整个树的父级,其值为group i.d.of 25235。这GID是所有孩子都会继承的。然而,其中一个孩子,一个带有PIDof 的shell 4205,开始了一个新GID4205

我为进程树的这个分支设置一个新的组 ID 的原因是,有时我想运行kill -9 -4205杀死 sh 进程及其所有子进程,共享相同的组 ID GID,而不影响进程树的其余部分。然后我可以重新启动 shell 进程及其子进程。我遇到的问题是,当我需要杀死从perl脚本(父级)开始的整棵树时,如果我运行kill -9 -25235(main group i.d.) 或kill -9 4678(parents PID),这将杀死除具有不同组 ID 的分支之外的整棵树。这些进程将被重新设置为 init 的父进程。

有没有办法不管不同的树都杀死整棵树GIDs?我怀疑session ids可能会来玩,但我还无法弄清楚是否会来。

进程树示例:

perl(4678,25235)─┬─sc_serv(4685,25235)─┬─{sc_serv}(4691,25235)
                 │                     ├─{sc_serv}(4693,25235)
                 │                     └─{sc_serv}(4694,25235)
                 └─sh(4205,4205)─┬─ffmpeg(4207,4205)
                                 └─vlc(4208,4205)─┬─{vlc}(4217,4205)
                                                  ├─{vlc}(4219,4205)
                                                  └─{vlc}(4296,4205)

相关内容