Linux:カーネル空間スレッド/プロセスだけを見ることはできますか?

Linux:カーネル空間スレッド/プロセスだけを見ることはできますか?

私はプログラムにユーザースペースとカーネルスペースという2つの「レベル」があることを知っています。

私の質問は:カーネルプログラムだけを見たいか、カーネルスペースにあるプログラムだけを見たいのです。

これは正しいアプローチですか?

ps -ef|grep "\["

root         1     0  0 20:23 ?        00:00:00 init [4]
root         2     0  0 20:23 ?        00:00:00 [kthreadd]
root         3     2  0 20:23 ?        00:00:00 [ksoftirqd/0]
root         5     2  0 20:23 ?        00:00:00 [kworker/0:0H]
root         7     2  0 20:23 ?        00:00:06 [rcu_sched]
root         8     2  0 20:23 ?        00:00:00 [rcu_bh]
root         9     2  0 20:23 ?        00:00:00 [migration/0]
root        10     2  0 20:23 ?        00:00:00 [migration/1]
root        11     2  0 20:23 ?        00:00:00 [ksoftirqd/1]
root        13     2  0 20:23 ?        00:00:00 [kworker/1:0H]
root        14     2  0 20:23 ?        00:00:00 [migration/2]
....

ベストアンサー1

カーネルプロセス(または「カーネルスレッド」)はkthreaddPID 2()の子プロセスであるため、これはより正確になります。

ps --ppid 2 -p 2 -o uname,pid,ppid,cmd,cls

--deselect選択を反転し、ユーザースペースプロセスのみを表示するために追加されました。

(この質問はほぼ同じです。これ.)

2.4.* 以前のカーネルには、この PID 2 ルールはまだ存在しません。

おすすめ記事