Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Blog | Linux Links | Bling | About BLU

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

A Zombie Process



On Fri, Feb 04, 2005 at 06:35:28PM -0500, karina.popkova at verizon.net wrote:
> Hello
> 
> I thought a "Zombie Process" was one
> that still existed as a data structure
> or having a Process Control Block,
> but has beem disconnected from its Parent.

All processes occupy a slot in the kernel's process table.  This
process table includes various information (or pointers to the
information) about the process, including user IDs, allocated memory,
open files, etc.  A zombie process is a process which has died, but
still occupies a slot in the process table.  All of its open files
have been closed, its memory released, and resources cleaned up.  But
it hangs around so that its parent process can receive its exit
status, usually as a result of the parent calling one of the wait()
family of system calls.

If the parent does not want the child's exit status, it can use the
signal() system call to ignore the SIGCHLD signal.  If it does this,
then when the child process terminates, it will die and its slot in
the process table will immediately be cleaned up.  It will not become
a zombie process.

If the parent does NOT do this, and also does not call wait() to get
the child's exit status, then when the  process terminates, it will
remain in the process table as a zombie process until after the parent
process dies.  Then, the child process's parent will be changed to the
init process, which periodically cleans up after orphaned child
processes.  The init process will ask for the child process's exit
status, and then finally that child process will be removed from the
process table.

For a really great discussion of all this, see W. Richard Stevens,
"Advanced Programming in the Unix Environment".

-- 
Derek D. Martin    http://www.pizzashack.org/   GPG Key ID: 0xDFBEAD02
-=-=-=-=-
This message is posted from an invalid address.  Replying to it will result in
undeliverable mail.  Sorry for the inconvenience.  Thank the spammers.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.blu.org/pipermail/discuss/attachments/20050204/a686698b/attachment.sig>



BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org