setpgid(0,0)之后的父进程;

mav*_*lan 4 process system-calls

我有一个进程P1(某些父进程P0的子进程)都位于同一进程组中。P1在其代码中的某个位置运行:setpgid(0,0);然后创建一个新的进程组(其中组领导者是P1)。

  • 现在谁是P1的父亲:仍然是P0、会话领导者还是其他?

Bar*_*mar 5

更改进程组不会影响进程层次结构。父级仍然是P0

流程层次结构保持不变非常重要。当 shell 实现作业控制时,每个作业都被放入其自己的进程组中。但shell仍必须是进程组领导者的父进程,以便shellSIGCHLD在退出时收到信号。