GNU/Linux >> Belajar Linux >  >> Linux

Apa Proses Zombie Dan Bagaimana Menemukan &Membunuh Proses Zombie?

Jika Anda pengguna Linux biasa, Anda pasti pernah menjumpai istilah ‘Proses Zombie '. Jadi apa Proses Zombie? Bagaimana mereka diciptakan? Apakah mereka berbahaya bagi sistem? Bagaimana cara mematikan proses ini? Teruslah membaca untuk mendapatkan jawaban atas semua pertanyaan ini.

Apa itu Proses Zombie?

Jadi kita semua tahu bagaimana proses bekerja. Kami meluncurkan sebuah program, memulai tugas kami &setelah tugas kami selesai, kami mengakhiri proses itu. Setelah proses berakhir, itu harus dihapus dari tabel proses.

Anda dapat melihat proses saat ini di 'System-Monitor'.

Ganti pid dengan id proses induk sehingga proses induk akan menghapus semua proses anak yang mati dan selesai. Bayangkan seperti ini:“Kamu menemukan mayat di tengah jalan, kamu memanggil keluarga mayat itu dan mereka membawa mayat itu dari jalan.” Tetapi banyak program tidak diprogram dengan cukup baik untuk menghapus zombie anak ini karena jika ya, Anda tidak akan memiliki zombie itu sejak awal. Jadi satu-satunya hal yang dijamin untuk menghilangkan Child Zombies adalah dengan membunuh induknya.

Namun, terkadang beberapa proses ini tetap berada di tabel proses bahkan setelah selesai dieksekusi.

Namun, terkadang beberapa proses ini tetap berada di tabel proses bahkan setelah selesai dieksekusi.

Jadi proses yang telah menyelesaikan masa eksekusinya tetapi masih ada di tabel proses disebut 'Proses Zombie'.

Dan Bagaimana Tepatnya Mereka Dibuat?

Setiap kali kami menjalankan program, itu menciptakan proses induk dan banyak proses anak. Semua proses anak ini menggunakan sumber daya seperti memori dan CPU yang dialokasikan untuk mereka oleh kernel.

Setelah proses anak ini selesai dijalankan, mereka mengirim panggilan Keluar dan mati. Panggilan Keluar ini harus dibaca oleh proses induk yang kemudian memanggil perintah wait untuk membaca status_keluar dari proses anak sehingga proses anak dapat dihapus dari tabel proses. Jika Induk membaca panggilan Keluar dengan benar yang dikirim oleh Proses Anak, proses akan dihapus dari tabel proses.

Namun, jika induk gagal membaca panggilan keluar dari proses turunan, proses turunan yang telah menyelesaikan eksekusinya dan sekarang mati tidak akan dihapus dari tabel proses.

Apakah proses Zombie berbahaya bagi Sistem?

Tidak. Karena proses zombie tidak melakukan pekerjaan apa pun, tidak menggunakan sumber daya apa pun atau memengaruhi proses lainnya, tidak ada salahnya memiliki proses zombie. Tetapi karena exit_status dan informasi proses lainnya dari tabel proses disimpan dalam RAM, memiliki terlalu banyak proses Zombie terkadang dapat menjadi masalah. Bayangkan seperti ini :

Anda adalah pemilik perusahaan konstruksi. Anda membayar upah harian kepada semua pekerja Anda tergantung pada bagaimana mereka bekerja. Seorang pekerja datang ke lokasi konstruksi setiap hari, hanya duduk di sana, Anda tidak perlu membayarnya, dia tidak melakukan pekerjaan apa pun. Dia hanya datang setiap hari dan duduk, itu saja!”

Pekerja seperti itu adalah contoh hidup dari proses zombie. Tapi, jika Anda memiliki banyak pekerja zombie, lokasi konstruksi Anda akan ramai dan mungkin menyulitkan orang-orang yang benar-benar bekerja.

Jadi bagaimana menemukan Proses Zombie?

Jalankan terminal dan ketik perintah berikut – ps aux | grep Z Sekarang Anda akan mendapatkan detail semua proses zombie di tabel proses.

Bagaimana cara mematikan proses Zombie?

Biasanya kita membunuh proses dengan perintah SIGKILL tetapi proses zombie sudah mati. Anda tidak dapat membunuh sesuatu yang sudah mati. Jadi yang Anda lakukan adalah mengetikkan perintah ini – kill -s SIGCHLD pid ​Ganti pid dengan id proses induk sehingga proses induk akan menghapus semua proses anak yang mati dan selesai. Bayangkan seperti ini :

Kamu menemukan mayat di tengah jalan, kamu memanggil keluarga mayat itu dan mereka membawa mayat itu dari jalan.”

Tetapi banyak program tidak diprogram dengan cukup baik untuk menghapus zombie anak ini karena jika ya, Anda tidak akan memiliki zombie itu sejak awal. Jadi satu-satunya hal yang dijamin untuk menghilangkan Child Zombies adalah dengan membunuh induknya.


Linux
  1. Bagaimana Membunuh Proses Yang Induknya Init?

  2. Cara membunuh proses zombie

  3. Temukan (dan bunuh) proses lama

  1. Cara mematikan proses zombie di Linux

  2. Cara Menemukan dan Membunuh Proses Zombie di Linux

  3. Cara Menemukan Siapa yang Masuk Di Sistem Anda Dan Apa yang Mereka Lakukan

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

  2. Bagaimana cara menemukan dan mematikan proses di Ubuntu

  3. Linux:Temukan dan Bunuh Proses Zombie