Ответы:
Под 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от 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 } }')
Используйте awk, чтобы создать разделенный запятыми список идентификаторов процессов из выходных данных ps -ef, передав идентификатор родительского процесса как proc, а затем передав его в htop -p.
$PIDможет быть именем процесса или идентификатором?