Réponses:
Sous Linux, vous pouvez faire:
htop -p `pstree -p $PID | perl -ne 'push @t, /\((\d+)\)/g; END { print join ",", @t }'`
où $PIDest le processus racine. Cela fonctionne comme suit:
pstree, en utilisant l' -poption 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 htopexécutée, on ne peut rien faire d'autre. Il s'agit d'une limitation de htop(version actuelle: 2.0.2).
$PIDdoit être le pid, mais vous pouvez obtenir l'identifiant à partir du nom du processus avec pgrep.
pstreede 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.
$PIDpeut être le nom du processus, ou ce doit être l'id?