Je recherche le processus démarré sous Linux qui a l'ID de processus 0. Je connais init
a PID 1 , qui est le premier processus sous Linux, existe-t-il un processus avec PID 0 ?
Réponse acceptée :
À partir de la page wikipedia intitulée :Identifiant de processus :
Il existe deux tâches avec des ID de processus spécialement distingués :swapper ou horaire a l'ID de processus 0 et est responsable de la pagination, et fait
partie du noyau plutôt qu'un processus en mode utilisateur normal.
L'ID de processus 1 est généralement le processus d'initialisation principalement responsable du
démarrage et arrêt du système. À l'origine, l'ID de processus 1 n'était
pas spécifiquement réservé à init par des mesures techniques :il
avait simplement cet ID comme conséquence naturelle du fait qu'il était le premier processus
appelé par le noyau. Les systèmes Unix plus récents ont généralement
des composants de noyau supplémentaires visibles en tant que "processus", auquel cas le PID
1 est activement réservé au processus init pour maintenir la cohérence
avec les systèmes plus anciens.
Vous pouvez en voir la preuve si vous regardez les PID parents (PPID) de init
et 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
est le démon de thread du noyau. Tous les kthreads sont dérivés de ce fil. Vous pouvez en voir la preuve si vous regardez d'autres processus utilisant ps
et voir qui est leur 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]
Remarquez qu'ils sont tous 2
.