![什么是 JID(作业 ID)并且它总是小于 PID?](https://linux22.com/image/34873/%E4%BB%80%E4%B9%88%E6%98%AF%20JID%EF%BC%88%E4%BD%9C%E4%B8%9A%20ID%EF%BC%89%E5%B9%B6%E4%B8%94%E5%AE%83%E6%80%BB%E6%98%AF%E5%B0%8F%E4%BA%8E%20PID%EF%BC%9F%20.png)
我不知道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