Jawaban:
Di Linux, Anda dapat melakukan:
htop -p `pstree -p $PID | perl -ne 'push @t, /\((\d+)\)/g; END { print join ",", @t }'`
dimana $PID
proses root. Ini berfungsi sebagai berikut:
pstree
menggunakan -p
opsi untuk mendaftar mereka dengan PID mereka.\((\d+)\)
), dan output mereka dipisahkan dengan koma.htop -p
.Untuk OS lain seperti Mac OS, Anda mungkin perlu menyesuaikan ekspresi reguler yang mengambil PID.
Catatan: Sayangnya tidak mungkin untuk memperbarui daftar dengan anak-anak baru yang muncul nanti, karena sekali htop
telah dieksekusi, orang tidak dapat melakukan hal lain. Ini adalah batasan htop
(versi saat ini: 2.0.2).
$PID
harus menjadi pid, tetapi Anda bisa mendapatkan id dari nama prosesnya pgrep
.
pstree
dari 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 } }')
Gunakan awk untuk membuat daftar id proses yang dipisahkan dengan koma dari keluaran ps -ef yang meneruskan id proses induk sebagai proc dan kemudian membagikan ini ke htop -p.
$PID
dapat nama proses, atau harus id?