Відповіді:
У Linux можна зробити:
htop -p `pstree -p $PID | perl -ne 'push @t, /\((\d+)\)/g; END { print join ",", @t }'`
де $PID
відбувається кореневий процес. Це працює так:
pstree
допомогою -p
параметра списку їх з їх PID.\((\d+)\)
) і виводить їх розділеними комами.htop -p
.Для інших ОС, таких як Mac OS, можливо, вам доведеться адаптувати регулярний вираз, який витягує PID.
Примітка. На жаль, неможливо оновити список новими дітьми, які пізніше нерестуються, тому що, як тільки htop
він буде виконаний, більше нічого не можна робити. Це обмеження htop
(поточна версія: 2.0.2).
$PID
має бути pid, але ви можете отримати ідентифікатор від імені процесу за допомогою pgrep
.
pstree
від домашньої мови: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 } }')
Використовуйте awk для створення списку ідентифікаторів процесу, відокремлених комами, з виводу ps -ef, що передає ідентифікатор батьківського процесу як proc, а потім передає цей файл htop -p.
$PID
може бути ім'ям процесу, або він повинен бути ідентифікатором?