Odpowiedzi:
Pod Linuksem możesz:
htop -p `pstree -p $PID | perl -ne 'push @t, /\((\d+)\)/g; END { print join ",", @t }'`
gdzie $PID
jest proces rootowania. Działa to w następujący sposób:
pstree
pomocą -p
opcji, 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 htop
wykonaniu nie można nic więcej zrobić. Jest to ograniczenie htop
(aktualna wersja: 2.0.2).
$PID
musi być pid, ale identyfikator można uzyskać z nazwy procesu za pomocą pgrep
.
pstree
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 } }')
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.
$PID
może to być nazwa procesu lub musi to być identyfikator?