Memahami dan Membunuh Zombie Process di Linux

Di dalam sistem operasi linux suatu proses dibedakan dengan process id hal ini dimaksudkan agar kernel suatu linux dapat mengidentifikasi suatu proses. Process id inilah yang harus berbeda setiap proses. Di linux sendiri terdapat 2 kategori proses yang berjalan:

  • Parent Process (PID)
    Suatu proses yang bisa membuat proses lain saat dieksekusi
  • Child Process (PPID)
    Suatu proses yang dibuat dari parent process

Berikut skenario normal suatu proses berjalan :

Terdapat parent process (A) dan (B) child process yang dihasilkan dari A. Ketika B selesai melakukan suatu proses, maka A memanggil (B) proses child untuk mengembalikan sinyal SIGCHLD dan kemudian (B) child process akan dianggap selesai.

Berikut skenario zombie proses berjalan :

Terdapat parent process (A) dan (B) child process yang dihasilkan dari A. Ketika B sedang menjalankan suatu proses, A juga menjalankan suatu proses tanpa menunggu B mengembalikan sinyal SIGCHLD sehingga child process (B) tidak tahu kapan proses akan berhenti hal ini mengakibatkan B tertinggal oleh sistem dan inilah yang disebut dengan Zombie Process.

Untuk mengetahuinya kita bisa menggunakan perintah top / htop / ps dalam sistem kita. Zombie Process umumnya terdapat di dalam instance yang berjalan terus menerus atau memberikan layanan (server). Kita dapat membunuh proses tersebut dengan perintah sebagai berikut:

top

ps -lA | grep ‘^. Z’

kill $(ps -A -ostat,ppid | awk ‘/[zZ]/{print $2}’)

Leave a Reply

Your email address will not be published. Required fields are marked *