Réponses:
Sous Linux, vous pouvez faire:
htop -p `pstree -p $PID | perl -ne 'push @t, /\((\d+)\)/g; END { print join ",", @t }'`
où $PID
est le processus racine. Cela fonctionne comme suit:
pstree
, en utilisant l' -p
option pour les lister avec leur PID.\((\d+)\)
), et les sort séparés par des virgules.htop -p
.Pour d'autres systèmes d'exploitation comme Mac OS, vous devrez peut-être adapter l'expression régulière qui récupère les PID.
Remarque: Il n'est malheureusement pas possible de mettre à jour la liste avec de nouveaux enfants qui apparaîtront plus tard, car une fois htop
exécutée, on ne peut rien faire d'autre. Il s'agit d'une limitation de htop
(version actuelle: 2.0.2).
$PID
doit être le pid, mais vous pouvez obtenir l'identifiant à partir du nom du processus avec pgrep
.
pstree
de 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 } }')
Utilisez awk pour créer une liste séparée par des virgules d'ID de processus à partir de la sortie de ps -ef en passant l'ID de processus parent en tant que proc, puis en le transmettant à htop -p.
$PID
peut être le nom du processus, ou ce doit être l'id?