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 $PID
là quá trình root. Điều này hoạt động như sau:
pstree
cách sử dụng -p
tù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).
$PID
phải là pid, nhưng bạn có thể lấy id từ tên của quá trình với pgrep
.
pstree
từ 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.
$PID
có thể là tên của quá trình, hoặc nó phải là id?