Linux:カーネルスペースのスレッド/プロセスのみを表示できますか?


27

プログラムには、ユーザー空間とカーネル空間の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]
....

5
>カーネル空間プログラムを見ることができますか?... はい!CCDに正しい天体フィルターが必要です... ;-)
RubberStamp


5
@steveカーネル空間プログラムは本当にモジュールに厳密に接しています。すべてのモジュールにプロセスがあるわけではなく、すべてのプロセスがモジュールであるわけではありません。
クリスダウン

3
質問は間違っています:カーネルプログラムではなく、カーネルプロセス(またはカーネルスレッド、またはカーネルタスク)を表示したい場合... 関係するプログラムは1つだけです:カーネル(およびカーネルモジュールがカーネルに追加されます)。
バジルスタリンケビッチ

今訂正します
elbarna

回答:


42

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

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

追加--deselectして選択を反転し、ユーザー空間プロセスのみを表示します。

(この質問はかなりの正確な逆だったこの1。)

2.4。*以前のカーネルでは、このPID 2規則はまだ存在していませんでした。


それは常に真実ですか?この質問の4番目のコメントを参照してください:stackoverflow.com/q/12213445/1971003
Guy Avraham

2.6。*の初期のカーネルでは、「PID 2の子」規則への変換が完全ではなかった可能性があります。HighKingがそこに示しているように、PID 2の名前もkthreadd2.6.18 までに完全に安定していませんでした。正確な詳細に興味がある場合は、kernel.orgにアクセスし、gitブラウザーインターフェイスを使用して、kernel/kthread.cファイルの初期の履歴にドリルダウンしてください。
telcoM

4

カーネルスレッドはRAMをまったく使用しません(または少なくとも使用しないように表示されます)。

ps -eo cmd,vsize,rss | grep -E ' 0 +0$'

1

tunaインストール済みの場合、次のようにすべてのカーネルスレッドを一覧表示できます。

$ tuna -U -P
                      thread       ctxt_switches
    pid SCHED_ rtpri affinity voluntary nonvoluntary             cmd 
  2      OTHER     0     0xff       290            1        kthreadd  
  3      OTHER     0     0xff         2            0          rcu_gp  
  4      OTHER     0     0xff         2            0      rcu_par_gp  
  6      OTHER     0        0        13            0 kworker/0:0H-kblockd  
  9      OTHER     0     0xff         2            0    mm_percpu_wq  
  10     OTHER     0        0       448            0     ksoftirqd/0
[..]
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.