Làm thế nào để chỉ hiển thị một quá trình và quá trình hậu duệ của nó trên htop?


10

Tôi muốn chỉ theo dõi một quá trình và quá trình con của nó trên htop. Lọc tên của quy trình cha chỉ liệt kê quy trình cha, không phải con của nó. Làm thế nào để tôi hiển thị các quá trình trẻ em quá?

Câu trả lời:


8

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:

  1. Danh sách các quy trình mong muốn có được bằng pstreecách sử dụng -ptùy chọn để liệt kê chúng với PID của chúng.
  2. Đầu ra được dẫn đến một tập lệnh Perl lấy ra các bộ PID, sử dụng biểu thức chính quy (ở đây \((\d+)\)) và xuất chúng ra bằng dấu phẩy.
  3. Danh sách này được cung cấp như là một đối số của 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).


$PIDcó thể là tên của quá trình, hoặc nó phải là id?
vẫy gọi

@becko $PIDphải là pid, nhưng bạn có thể lấy id từ tên của quá trình với pgrep.
vinc17

5
điều này sẽ không cập nhật khi những đứa trẻ mới được sinh ra mặc dù ... rất thích sử dụng sth như nó chỉ để theo dõi nội dung trong phiên tmux của tôi
black_puppydog

@black_puppydog tôi cũng vậy!
becko

Trên macOS với pstreetừ homebrew:htop -p `pstree -p $PID | perl -ne 'push @t, /--- (\d+) /g; END { print join ",", @t }'`
jpsim 27/07/17

0
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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.