什么是 JID(作业 ID)并且它总是小于 PID?

什么是 JID(作业 ID)并且它总是小于 PID?

我不知道JID(作业ID)到底是什么以及它是如何分配的。它与 PID 有何关系?一个数字如何以任何方式影响另一个数字的大小?

答案1

在我使用过的 shell 上,PID 和作业 ID 之间没有关系(bashdashzsh)。

然而,shell 作业是 shell 的子进程,而 PID 1 ( init) 是所有进程(包括 shell)的祖先。因此,作业 id 为 1 的进程将总是PID 大于作业 ID。

作业 ID 的分配取决于 shell。在 上bash,通常分配的作业 ID 比正在运行的后台作业的最大作业 ID 大 1:

$ sleep 1 & sleep 10 & sleep 1 &
[1] 11367
[2] 11370
[3] 11373
$ 
[1]   Done                    sleep 1
[3]+  Done                    sleep 1
$ sleep 1 &
[3] 11378

相关内容