Odpowiedzi:
Pod Linuksem możesz:
htop -p `pstree -p $PID | perl -ne 'push @t, /\((\d+)\)/g; END { print join ",", @t }'`
gdzie $PIDjest proces rootowania. Działa to w następujący sposób:
pstreepomocą -popcji, aby wyświetlić je wraz z ich PID.\((\d+)\)) i wysyła je oddzielone przecinkami.htop -p.W przypadku innych systemów operacyjnych, takich jak Mac OS, może być konieczne dostosowanie wyrażenia regularnego, które pobiera PID.
Uwaga: nie można niestety zaktualizować listy o nowe dzieci, które odradzają się później, ponieważ po htopwykonaniu nie można nic więcej zrobić. Jest to ograniczenie htop(aktualna wersja: 2.0.2).
$PIDmusi być pid, ale identyfikator można uzyskać z nazwy procesu za pomocą pgrep.
pstreehomebrew: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 } }')
Użyj awk, aby utworzyć oddzieloną przecinkami listę identyfikatorów procesów na podstawie wyniku ps -ef, przekazując nadrzędny identyfikator procesu jako proc, a następnie przekazując go do htop -p.
$PIDmoże to być nazwa procesu lub musi to być identyfikator?