来自SUSv4: 如果pid为负,但不是-1,则应将sig发送到所有进程(除了未指定的一组系统进程),它们的进程组ID等于pid的绝对值,并且该进程具有发送信号的权限。 据我所知,在任何时候都不能有2个或更多具有相同PID的进程。为什么规范要求发送给所有进程? 谢谢。
进程组ID与进程ID不同。 假设已知进程ID,则PGID为 每个进程都是唯一的一个进程组成员,由其进程组ID进行标识。 (当进程被创建时,它成为其父进程的进程组成员。)按照惯例,进程组ID等于进程组的第一个成员即进程组领导者的进程ID。使用系统调用getpgrp()或等效的getpgid(0)来获取进程组的ID。使用getpgid(p)查找进程p。 来源