Câu trả lời:
Trong Linux, bạn có thể làm:
htop -p `pstree -p $PID | perl -ne 'push @t, /\((\d+)\)/g; END { print join ",", @t }'`
đâu $PIDlà quá trình root. Điều này hoạt động như sau:
pstreecách sử dụng -ptùy chọn để liệt kê chúng với PID của chúng.\((\d+)\)) và xuất chúng ra bằng dấu phẩy.htop -p.Đối với các HĐH khác như Mac OS, bạn có thể cần điều chỉnh biểu thức chính quy lấy ra các PID.
Lưu ý: Thật không may là không thể cập nhật danh sách với những đứa trẻ mới sinh ra sau này, vì một khi htopđã được thực thi, người ta không thể làm gì khác. Đây là một hạn chế của htop(phiên bản hiện tại: 2.0.2).
$PIDphải là pid, nhưng bạn có thể lấy id từ tên của quá trình với pgrep.
pstreetừ 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 } }')
Sử dụng awk để tạo một danh sách các id tiến trình được phân tách bằng dấu phẩy từ đầu ra của ps -ef chuyển id tiến trình cha dưới dạng Proc và sau đó chuyển nó ra htop -p.
$PIDcó thể là tên của quá trình, hoặc nó phải là id?