哪个进程的PID为0?

use*_*744 72 process

我正在寻找在 Linux 中启动的进程 ID 为 0 的进程。我知道init有 PID 1 ,它是 Linux 中的第一个进程,是否有任何进程的 PID 为 0?

slm*_*slm 61

从标题为:进程标识符的维基百科页面:

有两个具有特殊进程 ID 的任务:swappersched进程 ID 为 0 并负责分页,并且实际上是内核的一部分而不是普通的用户模式进程。进程 ID 1 通常是主要负责启动和关闭系统的init进程。最初,进程 ID 1 并没有通过任何技术措施专门为 init 保留:它只是将这个 ID 作为内核调用的第一个进程的自然结果。较新的 Unix 系统通常有额外的内核组件作为“进程”可见,在这种情况下,PID 1 主动保留给 init 进程以保持与旧系统的一致性。

你可以看到这方面的证据,如果你看一下父母的PID(PPID)initkthreadd

$ ps -eaf
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Jun24 ?        00:00:02 /sbin/init
root         2     0  0 Jun24 ?        00:00:00 [kthreadd]
Run Code Online (Sandbox Code Playgroud)

kthreadd是内核线程守护进程。所有 kthread 都是从这个线程派生出来的。如果您查看其他使用psPPID 的进程并查看他们的 PPID,您可以看到这方面的证据:

$ ps -eaf
root         3     2  0 Jun24 ?        00:00:57 [ksoftirqd/0]
root         4     2  0 Jun24 ?        00:01:19 [migration/0]
root         5     2  0 Jun24 ?        00:00:00 [watchdog/0]
root        15     2  0 Jun24 ?        00:01:28 [events/0]
root        19     2  0 Jun24 ?        00:00:00 [cpuset]
root        20     2  0 Jun24 ?        00:00:00 [khelper]
Run Code Online (Sandbox Code Playgroud)

注意他们都是2.


cuo*_*glm 12

来自进程标识符维基:

有两个具有特殊进程 ID 的任务: swapper 或 sched 具有进程 ID 0 并负责分页,并且实际上是内核的一部分而不是普通的用户模式进程。


小智 12

进程pid 0是调度程序,

进程 ID 描述:
0 调度程序
1 init 进程
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecoveryd