alkabary Asked: 2019-02-24 15:19:32 +0800 CST2019-02-24 15:19:32 +0800 CST 2019-02-24 15:19:32 +0800 CST 如何使用相同的进程组 ID 运行多个进程? 772 我正在学习如何使用 killpg 系统调用。所以对于一个实验,我想用相同的 pgid 启动两个新进程,然后尝试使用 killpg 杀死它们。 我读到了setsid,所以我尝试了类似的东西: setsid gedit & firefox & 但是这两个进程:gedit 和 firefox 最终有两个不同的 pgid。 process kill 1 个回答 Voted Best Answer user147505 2019-02-24T15:36:08+08:002019-02-24T15:36:08+08:00 如果可以的话,打开 Firefox 和其中的几个选项卡。然后这样做: ps o pid,ppid,pgid,sid,comm 您应该看到如下内容: PID PPID PGID SID COMMAND 5121 25145 2628 2628 Web Content 5881 25145 2628 2628 Web Content 25145 1 2628 2628 firefox-esr 或者使用 subshell 来生成后台进程: $ (sleep 100& gedit&) $ ps o pid,ppid,pgid,sid,comm PID PPID PGID SID COMMAND 6365 2618 6364 27631 sleep 6366 2618 6364 27631 gedit 这是一个很好的解释为什么要使用 subshell 以及发生了什么:为什么我的子进程的 PGID 不是父进程的 PID? 另见: man credentials
如果可以的话,打开 Firefox 和其中的几个选项卡。然后这样做:
您应该看到如下内容:
或者使用 subshell 来生成后台进程:
这是一个很好的解释为什么要使用 subshell 以及发生了什么:为什么我的子进程的 PGID 不是父进程的 PID?
另见: