16

我被分配到

编写一个 C 程序,打印以下标识符 PID、PPID、SID、PGID、UID、EUID。

然后任务继续问

每个标识符代表什么?

我已经完成了这个程序,但还没有找到对标识符的充分解释。

  • 它们真正代表什么?
  • 特别是 SID 和 PGID 标识符的用途是什么?
4

1 回答 1

32

它们如下

  • PID - 进程 ID
  • PPID - 父进程 ID
  • SID - 会话 ID
  • PGID - 进程组 ID
  • UID - 用户 ID
  • EUID - 有效用户 ID

看看这个 SO Post和第一个答案,以获得对它们用途的健康解释。

从他们发布的定义推荐页面
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html

3.270 父进程ID

新进程的一个属性,用于标识进程的父进程。进程的父进程 ID 是其创建者的进程 ID,在创建者的生命周期内。创建者的生命周期结束后,父进程 ID 是实现定义的系统进程的进程 ID。

3.343 会话

为作业控制目的而建立的流程组的集合。每个进程组都是一个会话的成员。进程被认为是其进程组所属的会话的成员。新创建的进程加入其创建者的会话。一个进程可以改变它的会话成员;请参阅 setid()。同一会话中可以有多个进程组。

3.296 进程组

允许相关进程发出信号的进程集合。系统中的每个进程都是由进程组 ID 标识的进程组的成员。新创建的进程加入其创建者的进程组。

3.297 进程组 ID

表示进程组在其生命周期内的唯一正整数标识符。

3.142 有效用户 ID †</sup>

用于确定各种权限的进程属性,包括文件访问权限;另请参阅用户 ID。


†</sup> 请注意,EUID 和 EGID(效果组 ID)不用于 Linux 下的文件系统权限,它分别采用文件系统的 FSUID 和 FSGID 字段。

RedHat 6.x 文档中的这个页面对这些在 Linux 下的行为有很好的简洁解释:http: //www.mit.edu/afs.new/athena/system/rhlinux/redhat-6.2-docs/HOWTOS/其他格式/html/Secure-Programs-HOWTO-html/Secure-Programs-HOWTO-3.html

于 2017-01-06T03:36:37.843 回答