Відповіді:
У 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може бути ім'ям процесу, або він повинен бути ідентифікатором?