Linux: Sadece çekirdek uzay iplikleri / işlemlerini görmek mümkün mü?


27

İki program düzeyi olduğunu biliyorum: Kullanıcı alanı ve çekirdek alanı.

Sorum şu: Sadece çekirdek programları veya daha iyilerini görmek istiyorum: çekirdek alanındaki programlar.

Bu yaklaşım doğru mu?

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
> çekirdek uzay programlarını görmek mümkün mü? ... Evet!
CCD'nizde


5
@ steve Kernel uzay programları gerçekten de modüller için çok teğet. Her modülde işlem yoktur ve her işlem de modüldür.
Chris Down,

3
Soru yanlış: çekirdek işlemlerini (veya çekirdek iş parçacıklarını veya çekirdek görevlerini) çekirdek programlarını görmek istemiyorsunuz .... İçerisinde yalnızca bir program var : çekirdek (ve çekirdek modülleri çekirdeğe eklenir ).
Basile Starynkevitch,

Şimdi düzelteceğim
elbarna

Yanıtlar:


42

Çekirdek işlemleri (veya "çekirdek dişleri") PID 2 ( kthreadd) ' nin çocuklarıdır , bu nedenle bu daha doğru olabilir:

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

--deselectSeçimi tersine çevirmek ve yalnızca kullanıcı alanı işlemlerini görmek için ekleyin .

(Bu soru hemen hemen tam bir ters oldu bu bir .)

2.4. * Ve daha eski çekirdeklerde, bu PID 2 sözleşmesi henüz mevcut değildi.


Her zaman doğru mu? Bu sorudaki dördüncü yoruma bakın: stackoverflow.com/q/12213445/1971003
Guy Avraham

2.6. * Çekirdeklerinde "PID 2'nin çocuğu" kongresine dönüşümün tam olarak gerçekleşmemiş olması muhtemeldir. HighKing'in orada belirttiği gibi, PID 2'nin adı da kthreadd2.6.18 itibariyle tam olarak dengelenmemiştir . Tam ayrıntılarla ilgileniyorsanız, kernel.org adresine gidin ve kernel/kthread.cdosyanın ilk geçmişini incelemek için git tarayıcı arabirimini kullanın .
telcoM

4

Çekirdek iş parçacıkları RAM kullanmaz (ya da en azından hiç kullanmamak için görüntülenir):

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

1

Eğer tunayüklediyseniz, bunun gibi tüm çekirdek konularını listeleyebilirsiniz:

$ 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
[..]
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.