Linuxで開始されたプロセスIDが0のプロセスを探しています。init
を知っています。 Linuxの最初のプロセスであるPID1がありますが、PID 0のプロセスはありますか?
承認された回答:
「プロセス識別子:
」というタイトルのウィキペディアページから特別に区別されたプロセスIDを持つ2つのタスクがあります: swapper またはスケジュール プロセスID0を持ち、ページングを担当し、
通常のユーザーモードプロセスではなく、実際にはカーネルの一部です。
プロセスID1は通常、主に開始を担当するinitプロセスです。
システムをシャットダウンします。もともと、プロセスID 1は、技術的な手段によって
初期化のために特別に予約されていませんでした。
カーネルによって呼び出される最初のプロセスである
自然な結果として、このIDを持っていただけです。最近のUnixシステムには通常、
「プロセス」として表示される追加のカーネルコンポーネントがあります。この場合、PID
1は、古いシステムとの一貫性を維持するために
初期化プロセス用にアクティブに予約されています。
init
の親PID(PPID)を見ると、この証拠を見ることができます。 および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
カーネルスレッドデーモンです。すべてのkthreadはこのスレッドからフォークされます。 ps
を使用して他のプロセスを見ると、この証拠を見ることができます。 そして彼らの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]
それらはすべて2
であることに注意してください 。