Como exibir apenas um processo e seus processos descendentes no htop?

8

Eu quero monitorar apenas um processo e seus processos filhos em htop . Filtrar o nome do processo pai lista apenas o processo pai, não seus filhos. Como mostro os processos filhos também?

    
por becko 07.02.2015 / 19:12

2 respostas

5

No Linux, você pode fazer:

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

onde $PID é o processo raiz. Isso funciona da seguinte maneira:

  1. A lista dos processos desejados é obtida com pstree , usando a opção -p para listá-los com seu PID.
  2. A saída é canalizada para um script Perl que recupera os PIDs, usando uma expressão regular (aqui, \((\d+)\) ) e os envia separados por vírgulas.
  3. Esta lista é fornecida como um argumento de htop -p .

Para outros sistemas operacionais como o Mac OS, talvez seja necessário adaptar a expressão regular que recupera os PIDs.

Nota: Infelizmente não é possível atualizar a lista com novos filhos que são gerados mais tarde, porque uma vez que htop tenha sido executado, não é possível fazer mais nada. Esta é uma limitação de htop (versão atual: 2.0.2).

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

Use o awk para criar uma lista separada por vírgulas de ids do processo da saída de ps -ef passando o id do processo pai como proc e então passando isto para htop -p.

    
por 29.07.2017 / 17:14

Tags