Apakah mungkin untuk memfilter atas untuk menunjukkan proses tertentu?

10

Saya menjalankan top dan saya ingin selalu melihat java / tomcat / redis / mysql / mongo, apakah itu mungkin?

Blankman
sumber

Jawaban:

16

Anda bisa melakukan hal seperti ini

top -p `pgrep -d ',' "java|tomcat|redis|mysql|mongo"`

Ini akan pgrepmenghasilkan daftar pid yang dipisahkan oleh koma yang diteruskan ketop -p

Iain
sumber
Jauh lebih sederhana :)
Mircea Vutcovici
Saya sedang berjuang untuk mencari tahu bagaimana menemukan daftar proses untuk beberapa nama proses sampai saya melihat bagaimana Anda melakukannya.
user9517
1
Catatan untuk pemirsa di masa depan - metode ini mungkin tidak memberi Anda data yang Anda harapkan. a) metode ini hanya menunjukkan proses yang berjalan saat top dimulai . Perilaku normal Top adalah menunjukkan proses baru sejak dimulai. b) manual teratas yang saya baca mengatakan -p terbatas pada 20 id proses. lihat: stackoverflow.com/questions/12075591/…
MaasSql
1
Setelah menjalankan top -c, tekan o dan tulis filter pada kolom, mis. Untuk memperlihatkan baris di mana kolom PERINTAH berisi string foo, tulis COMMAND = foo
MaasSql
6

Tidak cukup apa yang Anda cari, tetapi kadang-kadang suatu proses dijalankan oleh pengguna itu sendiri, seperti apache2 sering dijalankan oleh pengguna www-data.

Anda dapat menggunakannya untuk membatasi output top hanya untuk proses oleh pengguna itu, secara efektif hanya menunjukkan proses apache2 dengan menggunakan perintah ini:

top -u www-data
DanMan
sumber
Bagus! Saya bertanya-tanya bagaimana cara mendaftar proses khusus pengguna
razor7
4

Lihat halaman manual top man untuk detail lebih lanjut tentang utilitas teratas ...

Semme yang Anda butuhkan -p parameter

-p: Monitor PID sebagai: -pN1 -pN2 ... atau -pN1, N2 [, ...]

        Monitor only processes with specified process  IDs.   This  option
        can  be given up to 20 times, or you can provide a comma delimited
        list  with  up  to  20  pids.   Co-mingling  both  approaches   is
        permitted.
Sergey
sumber
4

Coba ini:

alias mytop='echo $(sed "s/\([0-9]*\)/-p \1/g;s/^/top /" <(pgrep -d" " "java|redis|mysql|mongo"))'
mytop
Mircea Vutcovici
sumber