プロセスID 0でLinuxで起動されたプロセスを探しています。 PID 1があり、Linuxの最初のプロセスであることがわかっていますinit
。 PID 0を持つプロセスはありますか?
答え1
次のタイトルのWikipediaページから:プロセス識別子:
特別に区別されるプロセスIDを持つ2つのタスクがあります。交換機 または予定プロセスIDは0で、次の責任を負います。ページング、実際にはカーネルの一部であり、通常のカーネルではありません。ユーザーモードプロセス。プロセスID 1は通常内部にプロセスは主にシステムの開始と終了を担当します。当初、プロセスID 1は技術的措置によってinit専用に予約されていませんでした。単にカーネルが呼び出した最初のプロセスの自然な結果としてこのIDを持つようになりました。最新のUnixシステムには、「プロセス」と見なすことができる追加のカーネルコンポーネントがあることがよくあります。この場合、PID 1は以前のシステムとの一貫性を維持するためにinitプロセス用に積極的に予約されています。
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はこのスレッドから派生します。別のプロセスを使用してそのPPIDが誰であるかを確認すると、ps
その証拠を見ることができます。
$ 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
。
答え2
~からプロセス識別子ウィキペディア:
特別なプロセスIDを持つ2つのタスクがあります。 swapper または sched はプロセス ID 0 を持ち、ページングを担当し、実際には通常のユーザーモードプロセスではなくカーネルの一部です。
答え3
これに関連するプロセスpid 0
はスケジューラです。
プロセスID説明:
0スケジューラ
1 initプロセス
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecoveryd