Respostas:
No Linux, você pode fazer:
htop -p `pstree -p $PID | perl -ne 'push @t, /\((\d+)\)/g; END { print join ",", @t }'`
Onde $PID
está o processo raiz. Isso funciona da seguinte maneira:
pstree
, usando a -p
opção para listá-los com seu PID.\((\d+)\)
), e os gera separados por vírgulas.htop -p
.Para outros sistemas operacionais, como o Mac OS, pode ser 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 htop
executada, não é possível fazer mais nada. Essa é uma limitação de htop
(versão atual: 2.0.2).
$PID
tem que ser o pid, mas você pode obter o ID do nome do processo com pgrep
.
pstree
from homebrew:htop -p `pstree -p $PID | perl -ne 'push @t, /--- (\d+) /g; END { print join ",", @t }'`
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írgula de IDs de processo a partir da saída de ps -ef passando o ID do processo pai como proc e depois distribuindo-o para htop -p.
$PID
pode ser o nome do processo ou tem que ser o id?