Proses Monitor setara dengan Linux?

26

Apakah ada Unix / Linux yang setara dengan Process Monitor , apakah GUI atau CUI?

Jika itu membuat perbedaan, saya melihat Ubuntu, tetapi jika ada yang setara untuk sistem lain (Mac, varian Linux lainnya seperti Fedora, dll.) Maka mengetahui semua itu akan berguna juga.

Edit:

Monitor Proses untuk memantau panggilan sistem (seperti pembuatan file atau menulis), sedangkan Process Explorer untuk memantau status proses (yang seperti Monitor Sistem). Saya meminta yang pertama, bukan yang terakhir. :-)

Mehrdad
sumber

Jawaban:

12

Siaga konsol untuk ini top, tetapi ada alternatif seperti favorit saya htopyang memberi Anda sedikit lebih banyak fleksibilitas layar dan memungkinkan Anda beberapa operasi lagi pada proses.

Pandangan yang kurang interaktif yang lebih baik untuk digunakan dalam skrip adalah psprogram dan semua kerabatnya.

Sunting: Berdasarkan pada pertanyaan Anda yang diklarifikasi, Anda mungkin mencatat bahwa stracemenangani menonton panggilan sistem yang dilakukan oleh proses tertentu termasuk semua operasi baca-tulis dan panggilan fungsi os. Anda dapat mengaktifkannya di baris perintah sebelum program yang ingin Anda lacak atau lampirkan ke proses yang sedang berjalan dengan menekan spada proses yang dipilih di htop.

Caleb
sumber
4
Saya percaya topitu setara dengan Process Explorer , bukan Process Monitor , kan?
Mehrdad
Bagaimana kalau Anda menjalankannya dan menjelajahi halaman manual. Saya membaca daftar fitur yang Anda tautkan ke monitor proses dan kedengarannya seperti htopmembahas semua detail kecuali pemantauan urutan boot. Paling-paling itu bisa diaktifkan di screen/ tmuxkadang-kadang bagian jalan melalui boot linux.
Caleb
Mengingat komentar Anda yang lain, Anda mungkin juga mencari strace, yang dapat Anda aktifkan htopdengan menekan ssuatu proses atau secara manual dari baris perintah ketika Anda menjalankan sesuatu atau dengan id proses.
Caleb
12

Grandaddy dari semua pemantau proses adalah top, dan banyak alat pemantauan sistem dipanggil top. Sebagai contoh, ada iotopuntuk menonton disk I / O, atopuntuk banyak sumber daya sistem, powertopuntuk konsumsi daya.

Jika Anda ingin informasi lebih rinci, itu tidak dilacak secara default. Untuk menyaksikan apa yang dilakukan proses tertentu , hubungi stracesaja. Misalnya, jika Anda hanya tertarik pada akses sistem file:

strace -s9999 -efile command_name    # trace a program during its whole execution
strace -s9999 -efile -p1234          # trace a running program with the given PID

stracekhusus untuk Linux, tetapi sistem lain memiliki alat yang serupa: trusspada Solaris, ktraceatau di dtracebawah * BSD, dll.

Untuk menonton apa yang terjadi pada file tertentu atau dalam direktori atau pohon direktori tertentu, gunakan fasilitas inotify .

inotifywait -m .

Sekali lagi, fasilitas ini khusus untuk Linux, tetapi sebagian besar perangkat lain memiliki sistem yang serupa, misalnya kqueue di bawah * BSD, dan FAM (berasal dari SGI tetapi sekarang tersedia sebagai API pada banyak sistem).

Untuk menonton semua panggilan sistem di Linux, Anda dapat menggunakan subsistem audit . Ini relatif baru dan tidak ada banyak literatur tentang topik tersebut; cari auditctlatau baca auditctlhalaman manual . Ada beberapa contoh di situs ini: melacak akses file , menjalankan proses pelacakan .

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Apakah Anda yakin Anda merujuk ke yang setara dengan Monitor Proses , dan bukan Process Explorer ?
Mehrdad
@Mehrdad: Saya mengerti, saya menggunakan nama dan ingatan saya tentang alat yang saya gunakan pada Windows (yang sebenarnya adalah Process Explorer), dan bukan oleh deskripsi sebenarnya. Selalu berbahaya untuk meminta yang setara dengan program tertentu, lebih baik meminta program dengan fitur tertentu.
Gilles 'SO- stop being evil'
Terima kasih. iotop -o -b -Pmenunjukkan kepada saya proses mana yang melakukan operasi disk I / O
bartolo-otrit
8

Anda mungkin ingin melihat lsofdan strace. Proses Monitor Sysinternal sebenarnya Filemon dan Regmon dikombinasikan dengan beberapa peningkatan tambahan. The topperintah lebih seperti Process Explorer.

Akhir
sumber
4

Anda mungkin mencari sysdig

Sebagai contoh:

sysdig -A -c echo_fds
Kaos
sumber
3

Saya benar-benar terlambat untuk menjawab ini, tetapi saya telah memulai sebuah proyek yang bertujuan untuk melakukan persis apa yang Anda cari. Lihat di sini: https://github.com/alexandernst/monks

alexandernst
sumber
2

Saya belum pernah menggunakan Process Monitor itu, tetapi sejauh yang saya tahu itu sama dengan gnome-system-monitorpada sistem Gnome. Jika Anda menggunakan KDE, mereka mungkin memiliki sesuatu yang serupa.

Keith
sumber
Tidak, mereka berbeda. Monitor Proses sebenarnya menghubungkan panggilan sistem, bukan menampilkan informasi proses. (Apa yang Anda maksudkan dicapai oleh Process Explorer.)
Mehrdad
Oh, well, saya biasanya menggunakan alat CLI vmstat untuk hal-hal seperti itu. Tapi itu sistem yang luas, bukan per proses.
Keith
1

dtrace4linux memungkinkan Anda untuk melacak beberapa informasi menarik dari kernel. Meskipun tampaknya lebih kuat dari sysdig, sayangnya tidak berperilaku baik.

Rui F Ribeiro
sumber