Jumat, 21 Mei 2010

Zombie Process

Zombie Process atau dikenal dengan terjadi karena child process yang exit namun parent processnya tidak mengetahui jika child process tersebut sudah terminate, misalnya disebabkan karena putusnya network.
Sehingga parent process tidak merelease process yang masih digunakan oleh child process tersebut walaupun process tersebut sudah mati.

Untuk memeriksa apakah ada process zombie dapat dilakukan:

$ ps -ef | grep defunct

Zombie process tidak dapat dihilangkan dengan command kill, karena process tersebut sudah exit.

Berikut ini adalah contoh zombie process:

$ nohup perl -e "if (fork()>0) {while (1) {sleep 100*100;};};"&

$ ps -ecl |grep "Z"
F S UID PID PPID CLS PRI ADDR SZ WCHAN TTY TIME CMD
0 Z 100 27841 27840 - 0 - 0 - ? 0:00

Untuk merelease process dapat dilakukan:

$ preap 27841
27841: exited with status 0

Dan sekarang zombie tersebut sudah lenyap:

$ ps -ecl |grep "Z"
F S UID PID PPID CLS PRI ADDR SZ WCHAN TTY TIME CMD

Tidak ada komentar: