Estoy buscando el proceso iniciado en Linux que tiene ID de proceso 0. Sé init
tiene PID 1, que es el primer proceso en Linux, ¿hay algún proceso con PID 0?
Respuesta aceptada:
De la página de wikipedia titulada:Identificador de proceso:
Hay dos tareas con ID de proceso especialmente distinguidos:swapper o programado tiene el ID de proceso 0 y es responsable de la paginación, y es
en realidad parte del kernel en lugar de un proceso de modo de usuario normal.
El ID de proceso 1 suele ser el proceso de inicio principalmente responsable de
iniciar y apagar el sistema. Originalmente, el ID de proceso 1 no estaba
específicamente reservado para init por ninguna medida técnica:
simplemente tenía este ID como consecuencia natural de ser el primer proceso
invocado por el núcleo. Los sistemas Unix más recientes suelen tener
componentes del núcleo adicionales visibles como "procesos", en cuyo caso el PID
1 se reserva activamente para el proceso de inicio para mantener la coherencia
con los sistemas más antiguos.
Puede ver la evidencia de esto si observa los PID principales (PPID) de init
y kthreadd
:
$ 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]
kthreadd
es el demonio de subprocesos del kernel. Todos los kthreads se bifurcan a partir de este hilo. Puede ver evidencia de esto si observa otros procesos usando ps
y ver quién es su 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]
Observe que todos son 2
.