Sto cercando il processo avviato in Linux che ha ID processo 0. Conosco init
ha PID 1 , che è il primo processo in Linux, esiste un processo con PID 0?
Risposta accettata:
Dalla pagina di Wikipedia intitolata:Identificatore di processo:
Esistono due attività con ID di processo particolarmente distinti:swapper o programmato ha ID processo 0 ed è responsabile del paging, ed è
effettivamente parte del kernel piuttosto che un normale processo in modalità utente.
Process ID 1 è solitamente il processo init principalmente responsabile dell'avvio di
e spegnere il sistema. In origine, il processo ID 1 non era
non specificamente riservato a init da alcuna misura tecnica:esso
aveva semplicemente questo ID come conseguenza naturale di essere il primo processo
invocato dal kernel. I sistemi Unix più recenti in genere hanno
componenti del kernel aggiuntivi visibili come "processi", nel qual caso il PID
1 è attivamente riservato al processo init per mantenere la coerenza
con i sistemi precedenti.
Puoi vedere l'evidenza di ciò se guardi i PID (PPID) principali di init
e 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
è il demone del thread del kernel. Tutti i kthread sono biforcati da questo thread. Puoi vederne la prova se guardi altri processi usando ps
e vedere chi è il loro 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]
Nota che sono tutti 2
.