Mata todos los procesos en el grupo de procesos

Grupo de proceso

concepto
    在 linux 中,进程不但有自己的 id 号,还会有一个组 id 号。我们把拥有相同组 id 号的进程的集合称为一个进程组。
Enviar señales a procesos y grupos de procesos
使用 kill -n -pgid 可以将信号 n 发送到进程组 pgid 中的所有进程。例如命令 kill -9 -4115 表示杀死进程组 4115 中的所有进程
使用kill  -n pid 可以将信号n发送到指定pid进程。
El ciclo de vida del grupo de procesos
从进程组被创建开始,到组内所有进程终止或者离开。
Líder del grupo de procesos
进程组组长是进程组中的某一个进程。该进程的进程号等于进程组的进程号。需要注意的是,进程组可以没有组长。如进程 ps_swing,它的进程组组长 4239 已经被 kill 掉,但是进程组中的其它进程仍然存在。

Creación y configuración de grupos de procesos

// 获取进程 pid 的进程组 id.
pid_t getpgid(pid_t pid);

// 指定 pid 为进程组组长或将 pid 加入到组 pgid.
int setpgid(pid_t pid, pid_t pgid);
Nuevo grupo de procesos

Al designar un determinado proceso como líder del grupo, se crea un nuevo grupo de procesos. Es equivalente a llamar a setpgid (pid, pid), es decir, el pid del proceso se establece como líder del grupo de procesos y el pid del grupo de procesos se crea al mismo tiempo.

Agregar el proceso al grupo de procesos

Para agregar un proceso a un grupo de procesos existente, puede usar setpgid (pid, pgid).

注意:在使用上面的函数时,必须保证调用者进程、被设置的进程以及要添加的进程组属于同一个会话,否则会出现权限错误。在这里,“会话”这个概念可以暂时理解为同一个终端。

这也就是说,倘若你在你的终端中去设置其它终端的进程组,会失败。
命令 ps ajx 可以查看进程的 pid, gid, sid 等相关属性。

Supongo que te gusta

Origin blog.csdn.net/sun172270102/article/details/112682556
Recomendado
Clasificación