Proses zombie. Tidak semua orang pernah mendengar kata yang menarik namun menakutkan ini terkait dengan sistem operasi Linux. Di komputer pribadi, proses zombi mungkin bukan ancaman bagi pengguna biasa, tetapi jika berhubungan dengan server Linux, proses ini harus diidentifikasi dan dihentikan.

Proses tersebut dapat menyebabkan masalah dengan tabel proses sistem Anda dan pada gilirannya, merusak fungsi mesin Anda. Oleh karena itu, dalam artikel ini, kami akan membahas proses zombie secara detail, bersama dengan panduan komprehensif untuk menemukan dan membunuh proses zombie di mesin Linux.

Apa Proses Zombie?

Tetapi sebelum semua itu, penting bagi Anda untuk mengetahui apa sebenarnya proses zombie itu. Ini hanyalah proses mati dan mati yang menempati ruang pada tabel proses sistem. SEBUAH blok kontrol proses atau PCB adalah struktur data yang menyimpan detail yang terkait dengan proses individual yang berjalan di sistem Anda.

Tabel proses terdiri dari ID proses, tautan ke PCB, dan informasi berguna lainnya yang terkait dengan proses. Proses zombie memiliki ID proses dan informasi manajemen memori sendiri. Karena OS Linux memiliki sejumlah ID proses yang tersedia, proses lain tidak dapat menggunakan PID sampai proses zombie berhenti.

instagram viewer

Meskipun satu atau dua proses zombie tidak akan menyebabkan gangguan atau masalah kinerja pada komputer Anda, a sejumlah besar proses semacam itu dapat merusak alur kerja sistem Anda dengan membanjiri tabel proses dan file sumber daya.

Apa Penyebab Proses Zombie di Linux?

Untuk memahami penyebab yang mendasari proses zombi secara mendetail, Anda harus mempelajari bagaimana proses dimulai dan dihentikan di Linux. Sistem operasi Linux memonitor semua proses yang berjalan dan daemon di komputer. Itu tabel proses adalah daftar struktur yang berisi semua proses yang sedang berjalan di komputer Anda.

Setiap entri proses dalam tabel proses terdiri dari tautan ke blok kontrol proses dari proses khusus itu. PCB menyimpan detail yang terkait dengan proses tertentu itu. Rincian ini meliputi:

  1. Status proses: Status proses saat ini
  2. Nomor proses: Nomor unik yang digunakan untuk mengidentifikasi proses
  3. Penghitung program: Berisi informasi yang berkaitan dengan instruksi selanjutnya
  4. Mendaftar: Daftar semua register CPU yang digunakan oleh proses
  5. Buka daftar file: File yang digunakan oleh proses tersebut
  6. Informasi penjadwalan CPU: Berisi informasi yang terkait dengan waktu dan sumber daya CPU yang dialokasikan untuk proses tersebut
  7. Informasi manajemen memori: Berisi detail tentang jumlah memori yang digunakan oleh proses tersebut
  8. Informasi I / O: Daftar perangkat input atau output yang digunakan oleh proses

Linux menggunakan status proses berikut untuk menjelaskan semua prosesnya.

  • R: Proses berjalan
  • S: Proses tidur
  • D: Proses tidur tak terputus
  • T: Proses dihentikan
  • Z: Proses zombie

Setiap kali suatu proses menyelesaikan tugas yang diberikan, status prosesnya ditetapkan sebagai Zombie atau Z. Setiap proses memiliki proses induk yang memanggil keluarga fungsi bernama Tunggu() yang menunggu perubahan status suatu proses. Misalnya, jika status proses berubah dari Lari untuk Zombie, itu Tunggu() metode akan dipicu.

Itu Tunggu() Metode biasanya menghapus blok kontrol proses yang terkait dengan proses zombie itu dan kemudian menghapus masuknya proses itu dari tabel proses.

Namun terkadang, karena perkembangan program yang buruk, proses induk tidak memanggil file Tunggu() fungsi. Dan akibatnya, sistem tidak menghapus PCB dari proses zombi. Entri tabel proses untuk proses spesifik tersebut juga tetap utuh.

Ini memberi proses zombie umur yang tak terbatas. Karena sistem tidak dapat menghentikan proses, entri proses tidak pernah dihapus, dan PID tidak pernah dibebaskan.

Belajarlah lagi: Cara untuk Membunuh Program yang Tidak Merespons di Linux

Bagaimana Menemukan Proses Zombie?

Langkah pertama untuk menghapus proses zombie di sistem Anda adalah menganalisis proses mana yang memiliki ekstensi Zombie status proses. Meskipun Anda tidak dapat menghentikan proses ini secara langsung karena sistem telah menghapusnya dari memori, Anda dapat menghentikan proses induk yang terkait dengannya.

Pertama, Anda perlu memeriksa apakah tabel proses sistem Anda memiliki proses zombie. Anda dapat melakukannya dengan mudah menggunakan file puncak perintah. Cukup buka terminal Anda dan ketik:

puncak

Anda akan melihat keluaran yang mirip dengan yang ini. Perhatikan jumlah proses zombie di bagian atas jendela terminal. Jika hasilnya nol, maka Anda tidak perlu khawatir.

Anda dapat membuat daftar informasi yang terkait dengan proses zombie ini dengan menyalurkannya perintah ps dengan egrep. Egrep adalah ekstensi dari perintah grep di Linux yang memperlakukan semua pola sebagai string regex yang diperpanjang.

Terkait: Panduan Pemula Untuk Ekspresi Reguler Dengan Python

Ketik perintah berikut untuk mendaftar semua proses zombie:

ps aux | egrep "Z | mati"

Perintah yang disebutkan di atas akan mencari baris yang berisi keduanya Z atau mati dalam output yang dihasilkan oleh perintah ps. Outputnya terdiri dari daftar proses zombie yang berjalan di sistem Anda.

Proses Membunuh Zombie Menggunakan Perintah kill

Sekarang Anda tahu proses zombie mana yang saat ini menggerogoti sumber daya sistem Anda, sekarang saatnya untuk menghentikan proses ini.

Meskipun cara termudah untuk membunuh proses zombie adalah dengan memulai ulang komputer Anda, terkadang ini bukan pilihan yang layak, terutama jika Anda mengelola server.

Untuk membunuh proses zombie tanpa mematikan server Anda, catat ID proses dari setiap proses zombie. Dari bagian sebelumnya, kita dapat melihat bahwa PID dari proses zombie adalah 18614. Kemudian, gunakan PID ini untuk menemukan ID dari proses induk.

ps -o ppid = -p 18614

Keluaran:

18613

Verifikasi apakah ID proses induk ada menggunakan ps perintah.

ps -e | grep 18613

Sekarang kita telah mengkonfirmasi keberadaan proses induk, sekarang saatnya untuk menghentikannya. Melewati -SIGKILL bendera dengan membunuh perintah sebagai berikut:

sudo kill -SIGKILL 18613

Setelah Anda mematikan proses induk, sistem akan menghapus proses zombie dan menghapusnya dari tabel proses secara otomatis.

Mengelola Proses Secara Efisien di Linux

Setiap administrator sistem harus memprioritaskan proses pemantauan yang berjalan di mesin Linux. Meskipun proses zombi tidak selalu berbahaya bagi sistem Anda, proses ini dapat menyebabkan masalah kinerja jika jumlahnya banyak.

Jika Anda pengguna Linux pemula dan tidak tahu bagaimana sistem operasi Linux mengelola proses, mempelajari proses terlebih dahulu adalah tempat yang baik untuk memulai.

Surel
Apa Itu Proses di Linux?

Memahami proses dan pekerjaan adalah aspek kunci untuk memahami Linux. Inilah yang perlu Anda ketahui.

Baca Selanjutnya

Topik-topik yang berkaitan
  • Linux
  • Linux
  • Pengolahan
Tentang Penulis
Deepesh Sharma (45 Artikel Dipublikasikan)

Deepesh adalah Editor Junior untuk Linux di MUO. Dia telah menulis konten informasi di internet selama lebih dari 3 tahun. Di waktu luangnya, dia suka menulis, mendengarkan musik, dan bermain gitar.

Selebihnya Dari Deepesh Sharma

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk mendapatkan tip teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Satu langkah lagi…!

Harap konfirmasi alamat email Anda di email yang baru saja kami kirimkan kepada Anda.

.