web-dev-qa-db-fra.com

Quel processus a PID 0?

Je recherche le processus démarré sous Linux qui a l'ID de processus 0. Je sais que init a le PID 1, qui est le premier processus sous Linux, y a-t-il un processus avec le PID 0?

61
user9744

De la page wikipedia intitulée: Identificateur de processus :

Il existe deux tâches avec des ID de processus spécialement distingués: swapper ou sched has identifie le processus 0 et est responsable de pagination , et fait en fait partie du noyau plutôt qu'un processus normal mode utilisateur . L'ID de processus 1 est généralement le processus init principalement responsable du démarrage et de l'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 d'être le premier processus invoqué 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 voir la preuve de cela 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 bifurqués à partir de ce fil. Vous pouvez en voir la preuve si vous examinez d'autres processus à l'aide de ps et voyez 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]

Notez qu'ils sont tous 2.

53
slm

Du identificateur de processus wiki:

Il y a deux tâches avec des ID de processus spécialement distingués: swapper ou sched a l'ID de processus 0 et est responsable de la pagination, et fait en fait partie du noyau plutôt qu'un processus en mode utilisateur normal.

12
cuonglm

Le processus avec pid 0 est le planificateur,

Description de l'ID de processus:
0 Le planificateur
1 Le processus init
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecoveryd

9
user78115