Я хочу отслеживать только процесс и его дочерние процессы htop
. Фильтрация по имени родительского процесса перечисляет только родительский процесс, но не его дочерние. Как мне показать процессы детей тоже?
10
Под 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
должен быть pid, но вы можете получить идентификатор из названия процесса с помощьюpgrep
.pstree
от homebrew:htop -p `pstree -p $PID | perl -ne 'push @t, /--- (\d+) /g; END { print join ",", @t }'`
Используйте awk, чтобы создать разделенный запятыми список идентификаторов процессов из выходных данных ps -ef, передав идентификатор родительского процесса как proc, а затем передав его в htop -p.
источник