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