Linux

核心守護程序如何自動執行?

  • March 26, 2020

我已經編寫了我的自定義 init (PID 1) 腳本。在該腳本中,我剛剛安裝了必要的文件系統,但如果我執行ps aux該列表,則類似於以下內容:

/ # ps aux
PID   USER     TIME  COMMAND
   1 root      0:00 /custom/init
   2 root      0:00 [kthreadd]
   3 root      0:00 [rcu_gp]
   4 root      0:00 [rcu_par_gp]
   5 root      0:00 [kworker/0:0-eve]
   6 root      0:00 [kworker/0:0H-kb]
   7 root      0:00 [kworker/u2:0-ev]
   8 root      0:00 [mm_percpu_wq]
   9 root      0:00 [ksoftirqd/0]
  10 root      0:00 [rcu_sched]
  11 root      0:00 [rcu_bh]
  12 root      0:00 [migration/0]
  13 root      0:00 [cpuhp/0]
  14 root      0:00 [kworker/0:1-eve]
  15 root      0:00 [kdevtmpfs]
  16 root      0:00 [netns]
  17 root      0:00 [kauditd]
  18 root      0:00 [kworker/u2:1-ev]
  21 root      0:00 [oom_reaper]
  22 root      0:00 [kworker/u2:2-ev]
 161 root      0:00 [writeback]
 162 root      0:00 [kcompactd0]
 164 root      0:00 [ksmd]
 165 root      0:00 [crypto]
 166 root      0:00 [kintegrityd]
 167 root      0:00 [kblockd]
 275 root      0:00 [kswapd0]
 289 root      0:00 [kworker/u3:0]
 443 root      0:00 [kthrotld]
 491 root      0:00 [iscsi_eh]
 518 root      0:00 [ipv6_addrconf]
 527 root      0:00 [kstrp]
 543 root      0:00 [ext4-rsv-conver]
 544 root      0:00 [kworker/0:1H-kb]
 546 root      0:00 /bin/ash
 547 root      0:00 ps aux

是什麼創建了這些守護程序,即使我沒有在我的自定義初始化腳本中處理這個?

它們由核心啟動;例如,ksoftirqd執行緒在kernel/softirq.c.

引用自:https://unix.stackexchange.com/questions/574891