나는 사용자 정의 초기화(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
사용자 정의 초기화 스크립트에서 이를 처리하지 않더라도 이러한 데몬을 생성하는 것은 무엇입니까?
답변1
ksoftirqd
예를 들어 스레드는 커널에 의해 시작됩니다.kernel/softirq.c
.