GNU/Linux >> Belajar Linux >  >> Linux

Cara Menemukan dan Membunuh Proses Zombie di Linux

Brief:Ini adalah tip cepat untuk menemukan proses zombie di Linux dan kemudian membunuhnya. Anda juga belajar satu atau dua hal tentang proses dan proses zombie.

Sebelum Anda mempelajari tentang proses Zombie, izinkan saya mengingat kembali apa itu proses di Linux.

Dalam beberapa kata, proses adalah contoh program yang sedang berjalan dalam kinerja. Ini bisa menjadi latar depan (proses interaktif) atau latar belakang (bukan proses interaktif atau otomatis). Ini bisa berupa proses induk (pencipta proses lain selama run-time) atau anak (proses yang dibuat oleh orang lain).

Di Linux, kecuali untuk proses init (atau systemd) pertama dengan PID 0, setiap proses lainnya memiliki proses induk. Proses juga memiliki proses turunannya sendiri.

Tidak percaya padaku? Gunakan pstree perintah di terminal untuk melihat pohon proses untuk melihat 'pohon keluarga' dari proses sistem Anda.

Apa yang dimaksud dengan proses Zombie di Linux?

Ketika proses anak mati, proses induk diinformasikan sehingga dapat melakukan pembersihan seperti mengosongkan memori dll. Namun, proses anak masuk ke keadaan zombie jika proses induk tidak menyadari kematiannya. Bagi orang tua, anak tetap ada tetapi proses anak sebenarnya sudah mati. Beginilah proses zombie (juga dikenal sebagai proses yang tidak berfungsi) dibuat dan tetap berada di sistem.

Inilah pandangan lucu yang luar biasa tentang proses zombie oleh Turnoff.us:

Apakah Anda benar-benar perlu khawatir tentang proses Zombie?

Penting untuk mengatakan bahwa proses zombie tidak berbahaya seperti namanya.

Masalah mungkin muncul jika sistem Anda memiliki RAM yang terbatas atau jika ada terlalu banyak proses zombie yang memakan RAM. Selain itu, sebagian besar proses Linux dapat memiliki PID maksimum yang disetel ke 32768. Jika tidak ada ID yang tersedia untuk tugas produktif lainnya, sistem Anda mungkin macet.

Ini jarang terjadi, tetapi kemungkinan ini terjadi, khususnya jika program dengan kode yang buruk mulai memicu banyak proses zombie.

Dalam kasus seperti itu, itu akan menjadi ide yang baik untuk menemukan dan membunuh proses zombie.

Bagaimana menemukan proses zombie?

Sebuah proses di Linux dapat memiliki salah satu status berikut:

  • D =tidur tanpa gangguan
  • Saya =menganggur
  • R =berlari
  • S =tidur
  • T =dihentikan oleh sinyal kontrol pekerjaan
  • t =dihentikan oleh debugger selama pelacakan
  • Z =zombie

Tapi di mana Anda bisa melihat proses dan statusnya masing-masing? Salah satu cara mudah adalah dengan menggunakan terminal dan perintah teratas.

Seperti yang Anda lihat pada tangkapan layar di atas, ada 250 total tugas (atau proses), 1 sedang berjalan, 248 proses sedang tidur, dan 1 dalam keadaan zombie.

Sekarang, muncul pertanyaan, bagaimana cara membunuh proses zombie?

Bagaimana menemukan dan membunuh proses zombie? Bisakah proses zombie dibunuh?

Proses zombie sudah mati. Bagaimana Anda mematikan proses yang sudah mati?

Dalam film zombie, Anda menembak zombie di kepala atau membakarnya. Itu bukan pilihan di sini. Anda dapat membakar sistem Anda untuk membunuh proses zombie tetapi itu bukan solusi yang layak

Beberapa orang menyarankan untuk mengirimkan sinyal SIGCHLD ke proses induk. Tapi lebih cenderung diabaikan. Pilihan lain untuk membunuh proses zombie adalah dengan membunuh proses induknya. Kedengarannya brutal, tapi itulah satu-satunya cara jitu untuk membunuh proses zombie.

Jadi, pertama, mari kita daftar proses zombie untuk mengetahui ID mereka. Ini dapat dicapai dengan menggunakan perintah ps seperti ini di terminal.

ps ux | awk '{if($8=="Z+") print}'

Kolom ke-8 dalam output dari perintah ps ux menampilkan status suatu proses. Anda meminta untuk mencetak semua baris yang cocok dengan status proses Z+ (menunjukkan status zombie).

Setelah Anda mengidentifikasi ID prosesnya, dapatkan ID proses induknya.

ps -o ppid= -p <child_id>

Atau, Anda dapat menggabungkan dua perintah di atas dengan cara berikut di mana ia secara langsung menyediakan PID dari proses zombie dan PID dari proses induknya.

ps -A -ostat,pid,ppid | grep -e '[zZ]'

Di sini Anda mendapatkan ID proses induk, jadi akhirnya matikan proses dengan mengetikkan baris perintah dengan proses ID masing-masing yang diperoleh sebelumnya.

kill -9 <parent_process_ID>

Anda dapat memverifikasi apakah proses zombie terbunuh atau tidak dengan menjalankan kembali perintah ps atau bahkan perintah teratas.

Selamat! Sekarang Anda tahu cara menghilangkan proses zombie.

Dengan masukan dari Abhishek Prakash.

Artikel Asli


Linux
  1. Cara mematikan proses zombie di Linux

  2. Cara membunuh proses zombie

  3. Cara Menjeda/Melanjutkan Proses di Linux

  1. Apa Proses Zombie Dan Bagaimana Menemukan &Membunuh Proses Zombie?

  2. Bagaimana cara mematikan proses di Linux menggunakan perintah?

  3. Bagaimana cara menemukan dan mematikan proses di Ubuntu

  1. Cara mematikan proses atau menghentikan program di Linux

  2. Bagaimana Cara Membunuh Proses di Linux? Perintah untuk Mengakhiri

  3. Linux:Temukan dan Bunuh Proses Zombie