Come visualizzare solo un processo e i suoi processi discendenti su htop?


10

Voglio monitorare solo un processo e i suoi processi secondari htop. Il filtro sul nome del processo parent elenca solo il processo parent, non i suoi figli. Come faccio a mostrare anche i processi dei bambini?

Risposte:


8

Sotto Linux, puoi fare:

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

dov'è $PIDil processo di root. Funziona come segue:

  1. L'elenco dei processi desiderati si ottiene con pstree, usando l' -popzione per elencarli con il loro PID.
  2. L'output viene reindirizzato a uno script Perl che recupera i PID, utilizzando un'espressione regolare (qui, \((\d+)\)) e li restituisce separati da virgole.
  3. Questo elenco è fornito come argomento di htop -p.

Per altri sistemi operativi come Mac OS, potrebbe essere necessario adattare l'espressione regolare che recupera i PID.

Nota: purtroppo non è possibile aggiornare l'elenco con i nuovi figli che vengono generati in seguito, poiché una volta htopeseguito, non si può fare nient'altro. Questa è una limitazione di htop(versione corrente: 2.0.2).


$PIDpuò essere il nome del processo o deve essere l'id?
becko

@becko $PIDdeve essere il pid, ma puoi ottenere l'id dal nome del processo con pgrep.
vinc17,

5
questo non si aggiorna quando vengono generati nuovi bambini ... mi piacerebbe usare sth come questo per monitorare solo cose nella mia sessione di
tmux

@black_puppydog anche a me!
becko,

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

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

Usa awk per creare un elenco separato da virgole di id di processo dall'output di ps -ef passando l'id di processo parent come proc e quindi passando a htop -p.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.