Sadece bir işlem ve onun alt süreçleri htop'ta nasıl görüntülenir?


10

Sadece bir süreci ve alt süreçlerini izlemek istiyorum htop. Üst işlemin adına filtre uygulamak alt öğelerini değil, yalnızca üst işlemi listeler. Çocuk süreçlerini de nasıl gösterebilirim?

Yanıtlar:


8

Linux altında şunları yapabilirsiniz:

htop -p `pstree -p $PID | perl -ne 'push @t, /\((\d+)\)/g; END { print join ",", @t }'`

$PIDkök işlemi nerede . Bu şu şekilde çalışır:

  1. İstenen işlemlerin listesi, PID'leri ile listelenme seçeneği pstreekullanılarak elde edilir -p.
  2. Çıktı, düzenli bir ifade (burada \((\d+)\)) kullanılarak PID'leri alan bir Perl betiğine bağlanır ve bunları virgülle ayrılmış olarak çıkarır.
  3. Bu liste bir argüman olarak sağlanmıştır htop -p.

Mac OS gibi diğer işletim sistemleri için, PID'leri alan normal ifadeyi uyarlamanız gerekebilir.

Not: Maalesef listeyi daha sonra ortaya çıkan yeni çocuklarla güncellemek mümkün değildir, çünkü bir kez htopyürütüldüğünde, başka bir şey yapamaz. Bu bir sınırlamadır htop(mevcut sürüm: 2.0.2).


$PIDsürecin adı olabilir, ya da kimliği olmalı?
becko

@becko $PIDpid olmalı, ancak işlemin adından kimliği alabilirsiniz pgrep.
vinc17

5
yeni çocuklar doğduğunda bu güncelleme olmayacak ... benim tmux oturumunda sadece şeyler izlemek için sth kullanmak isterdim
black_puppydog 18:05

@black_puppydog beni de!
becko

pstreeHomebrew ile htop -p `pstree -p $PID | perl -ne 'push @t, /--- (\d+) /g; END { print join ",", @t }'`
macOS'ta

0
htop -p $(ps -ef | awk -v proc=15305 '$3 == proc { cnt++;if (cnt == 1) { printf "%s",$2 } else { printf ",%s",$2 } }')

Üst işlem kimliğini proc olarak geçiren ve sonra bunu htop -p'ye ileten ps -ef çıktısından virgülle ayrılmış bir işlem kimliği listesi oluşturmak için awk kullanın.

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.