GNU/Linux >> Belajar Linux >  >> Linux

Linux – Log Utas Sebelumnya Yang Sekarang Ditutup?

Terkadang, saya memiliki proses Java jahat yang menghabiskan 100% CPU saya dan membuatnya melonjak sekitar 30C pada suhu (biasanya mengakibatkan crash jika tidak dimatikan).

Masalahnya, saya tidak pernah bisa benar-benar mengidentifikasinya (memiliki daftar panjang parameter dan hal-hal lain) atau menganalisisnya karena saya harus membunuhnya dengan sangat cepat.

Apakah ada semacam log yang dapat saya lihat untuk melihat identitas proses sebelumnya yang telah saya matikan? Jika tidak, apakah ada cara bagi saya untuk menangkap proses itu saat muncul lagi?

Jika penting, saya OpenSuse 11.4.

Jawaban yang Diterima:

Tidak, tidak secara default. Ada yang namanya terlalu banyak logging (terutama ketika Anda mulai mengambil risiko logging tindakan menulis entri log…).

Proses akuntansi BSD (jika Anda memilikinya, jalankan lastcomm ), jika aktif, mencatat nama setiap perintah yang dijalankan dan beberapa statistik dasar, tetapi bukan argumennya.

Subsistem audit lebih umum dan lebih fleksibel. Instal audit paket dan baca panduan audit SuSE (kebanyakan bagian tentang aturan), atau coba

auditctl -A exit,always -F path=/usr/bin/java -S execve

Atau:alih-alih membunuhnya, kill -STOP dia. STOP menunda proses, tidak ada pertanyaan yang diajukan. Anda mendapatkan opsi untuk melanjutkan (kill -CONT ) atau hentikan (kill -KILL ) nanti. Selama prosesnya masih ada, Anda dapat memeriksa baris perintahnya (/proc/12345/cmdline ), peta memorinya (/proc/12345/maps ) dan seterusnya.

Atau:lampirkan debugger ke proses dan jeda. Sesederhana gdb --pid 12345 (mungkin ada opsi yang lebih baik untuk proses Java); melampirkan debugger segera menghentikan proses (jika Anda keluar dari debugger, proses menerima SIGCONT dan melanjutkan).

Perhatikan bahwa semua ini hanya menangkap proses tingkat OS, bukan utas JVM. Anda perlu beralih ke fitur JVM untuk men-debug utas.


Linux
  1. Linux – Kapan Saya Tidak Harus Membunuh -9 Proses?

  2. Bagaimana cara mematikan proses di Linux menggunakan perintah?

  3. 20 File Log Linux yang Terletak di Direktori /var/log

  1. skrip linux untuk membunuh proses java

  2. Apakah utas kernel Linux benar-benar proses kernel?

  3. Apakah utas diimplementasikan sebagai proses di Linux?

  1. Cara mematikan proses zombie di Linux

  2. Pengantar Utas Linux – Bagian I

  3. Apa itu Proses Linux, Utas, Proses Ringan, dan Status Proses