Categories
Linux Mastering Development

How are the kernel daemons running automatically?

I have written my custom init (PID 1) script. In that script I have just mounted the necessary filesystems, but if I run ps aux the list is similar to below:

/ # 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

What is creating these daemons, even though I have not handled this in my custom init script?

Leave a Reply

Your email address will not be published. Required fields are marked *