我不知道JID(作业ID)到底是什么以及它是如何分配的。它与 PID 有何关系?一个数字如何以任何方式影响另一个数字的大小?
答案1
在我使用过的 shell 上,PID 和作业 ID 之间没有关系(bash
、dash
和zsh
)。
然而,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