GNU/Linux >> Belajar Linux >  >> Linux

Cara Membunuh Proses Zombie di Ubuntu

zombie atau proses yang tidak berfungsi di Linux adalah proses yang telah selesai, tetapi entrinya masih ada di tabel proses karena kurangnya korespondensi antara proses induk dan anak. Biasanya, proses induk terus memeriksa status proses anaknya melalui fungsi wait(). Ketika proses anak selesai, fungsi tunggu memberi sinyal kepada orang tua untuk benar-benar keluar dari proses dari memori. Namun, jika induk gagal memanggil fungsi tunggu untuk anak-anaknya, proses anak tetap hidup dalam sistem sebagai proses mati atau zombie. Proses zombie ini mungkin menumpuk, dalam jumlah besar, di sistem Anda dan memengaruhi kinerjanya. Dalam hal ini, Anda mungkin harus membunuh zombie ini secara manual melalui cara dan perintah yang dijelaskan dalam tutorial ini.

Tutorial ini kompatibel dengan semua versi Ubuntu terbaru termasuk Ubuntu 22.04.

Melihat Proses Zombie

Anda dapat memeriksa kinerja sistem Anda dengan melihat berbagai proses yang berjalan di sistem Anda, termasuk proses zombie yang mengubah efisiensi. Ubuntu memungkinkan Anda untuk melihat proses ini dengan cara berikut:

  • Melalui Antarmuka Pengguna Grafis
  • Melalui Baris Perintah

Melalui GUI

Untuk melihat secara grafis setiap proses zombie yang berjalan di sistem Anda, buka System Monitor utilitas melalui Dash Ubuntu Anda. Pada tangkapan layar Monitor Sistem saya berikut, Anda dapat melihat bahwa ada dua zombie yang berjalan di sistem saya. Mungkin juga jumlah proses zombie di sistem Anda mungkin lebih sedikit atau lebih banyak daripada yang berjalan di sistem saya.

Melalui Baris Perintah

atas perintah menampilkan tampilan rinci dari proses yang berjalan pada sistem Anda bersama dengan memori dan sumber daya CPU yang mereka gunakan. Ini juga memberi Anda informasi tentang proses zombie yang berjalan di sistem Anda. Buka Terminal dengan menekan Ctrl+Alt+T lalu ketik atas . Saya mendapatkan output berikut setelah menjalankan perintah ini.

$ atas

Anda dapat melihat di baris kedua bahwa ada 1 proses zombie yang berjalan di sistem saya.

Jika Anda ingin detail lebih lanjut tentang proses zombie, gunakan perintah berikut:

$ ps axo stat,ppid,pid,comm | grep -w defunct

Perintah ini akan memberi Anda status, parentID, ID proses, program yang menjalankan proses zombie (program dummy dengan nama 'zombie' di sistem saya). Bendera yang tidak berfungsi memberi tahu Anda bahwa ini adalah proses zombie yang mati.

Membunuh Proses Zombie

Pertama, mari kita pahami bagaimana proses zombie merupakan ancaman bagi kinerja sistem kita. Penting untuk mengetahui bahwa zombie sudah mati dan sebagian besar menyelesaikan proses yang tidak menggunakan memori atau sumber daya CPU. Namun, masing-masing proses ini memiliki ID proses unik yang ditetapkan untuknya yang berasal dari kumpulan PID terbatas yang disediakan untuk prosesor Anda. Jika zombie dalam jumlah besar berkumpul, mereka akan memakan sebagian besar kumpulan PID dan proses baru tidak akan dapat diluncurkan karena kurangnya ID proses.

Sejumlah kecil program mati yang menempati sistem Anda bukanlah ancaman besar, tetapi itu berarti program induknya tidak dapat menghentikannya karena bug atau fungsi wait() yang hilang.

Ketika proses induk belum dapat memanggil fungsi wait() secara otomatis, kita perlu memberi sinyal secara manual kepada proses induk untuk menjalankan fungsi wait pada semua anaknya sehingga yang dengan status lengkap dapat dipanggil kembali. Kita dapat melakukan ini dengan menjalankan perintah SIGCHLD. Jika itu tidak berhasil, kita dapat mematikan proses induk secara manual sehingga semua anak zombienya juga terbunuh, membebaskan ID proses untuk proses baru.

Anda dapat membunuh proses zombie melalui cara berikut:

  • Melalui Antarmuka Pengguna Grafis
  • Melalui Baris Perintah

Melalui GUI

Anda dapat mematikan proses zombie secara grafis melalui System Monitor Utility sebagai berikut:

  1. Buka Monitor Sistem utilitas melalui Ubuntu Dash.
  2. Telusuri istilah Zombie melalui Penelusuran tombol.
  3. Pilih proses zombie, klik kanan lalu pilih Bunuh dari menu.

Proses zombie akan dihapus dari sistem Anda.

Melalui Baris Perintah

Setelah Anda mengetahui bahwa ada proses zombie yang berjalan di sistem Anda melalui perintah teratas. Ini adalah cara melihat detail proses.

Cara yang biasa adalah dengan menggunakan perintah berikut yang menandakan proses induk zombie untuk mematikan perintah tersebut.

$ kill -s SIGCHLD PID

Perintah ini mungkin tidak berfungsi dalam beberapa kasus karena tidak semua proses induk diprogram dengan benar untuk memeriksa proses anak. Dalam hal ini, Anda dapat mematikan proses induk melalui perintah berikut:

$ sudo kill -9 3376

Ketika Anda telah membunuh semua proses zombie dengan cara ini dan menjalankan perintah teratas, Anda akan dapat melihat bahwa tidak ada lagi proses zombie yang berjalan di sistem Anda:

Setelah mengikuti tutorial ini, Anda dapat mengoptimalkan sistem operasi Anda dengan mencari proses zombie di sistem Anda dan mematikannya secara manual melalui baris perintah atau antarmuka pengguna grafis. Tindakan ini akan membebaskan ID proses untuk proses baru yang ingin Anda jalankan di sistem Anda.


Linux
  1. Bagaimana Membunuh Proses Yang Induknya Init?

  2. Bagaimana cara menemukan dan mematikan proses di Ubuntu

  3. Linux:Temukan dan Bunuh Proses Zombie

  1. Cara mematikan proses zombie di Linux

  2. Cara Menemukan dan Membunuh Proses Zombie di Linux

  3. Bagaimana cara mematikan proses yang lebih lama dari t?

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

  2. Cara Membunuh Proses yang Berjalan di Linux

  3. Cara membunuh proses zombie