linux 内核中的 PID、TGID、PGID、SID、PPID

图片来源:https://www.pixiv.net/en/artworks/74361938

名称解释task_struct 中的对应变量(定义在 include/linux/sched.h 中,均为全局ID,内核版本 v2.6.24)对应的系统调用
PID (Process ID)字面上是虽然是 进程 ID,实际上就是线程 ID,内核中进程、线程都使用 task_struct 结构表示task_struct->pidpid_t gettid(void);
TGID (Thread Group ID)线程组 ID,即线程组组长的 PID,真正的进程 ID,如果进程只有一个线程则他的 PID 和 TGID 相同task_struct->tgidpid_t getpid(void);
PGID (Process Group ID)进程组 ID,多个进程可以组合为进程组,方便向所有成员发送信号,进程组组长的 PID 即为PGIDtask_struct->signal->__pgrppid_t getpgrp(void);
SID(Session ID)会话 ID,多个进程组可以组合为会话,会话的组长PGID 即为 SIDtask_struct->signal->__sessionpid_t getsid(pid_t pid);
PPID (Parent Process ID)父进程 IDtask_struct->parent->pidpid_t getppid(void);

参考:

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注