Difference between revisions of "Zombie"

From Hackepedia
Jump to navigationJump to search
m (sample zombie)
m (add a comma)
 
Line 12: Line 12:
  
 
The program is very simple it forks and the child exits immediately, the parent is in
 
The program is very simple it forks and the child exits immediately, the parent is in
an endless loop.  As soon as the parent is killed init inherits the zombie child and it
+
an endless loop.  As soon as the parent is killed, init inherits the zombie child and it
 
waits on it making it disappear.
 
waits on it making it disappear.

Latest revision as of 12:29, 31 May 2008

A zombie process is a process awaiting collection by a parent. To clean them up the parent process reaps the child with the wait(2) syscall, it knows when to do this because the kernel notifies it that the child has entered zombie state by means of the SIGCHLD signal. Orphaned processes are reaped by init.

A zombie in the process list (ps) is indicated with flag Z, here is an example of a user initiated zombie:

francisco$ ps ax|grep zombie
16912 p2  Z       0:00.00 (zombie)
16788 p2  I       0:00.01 ./zombie
27973 p2  R+      0:00.00 grep zombie (ksh)
francisco$ kill 16788
[1] + Terminated           ./zombie 

The program is very simple it forks and the child exits immediately, the parent is in an endless loop. As soon as the parent is killed, init inherits the zombie child and it waits on it making it disappear.