Defunct

Kevin Buettner kev@primenet.com
Mon, 11 Dec 2000 13:05:00 -0700


On Dec 11, 12:41pm, Sonja Michelle Lina Thomas wrote:

> Quick question,
>     When I do a ps -A and I get some of these: 
> 
> 21411 ?        00:00:01 processwhatever <defunct> 
> 
>     How do I kill it off and is it taking up any resources?

It is most likely a zombie process.  (Use "ps -A l" next time and
look for a Z in the STAT field.)

There is no way to kill it off without affecting some other process. 
(If you're desparate, you can kill the parent.  This causes the zombie
to be inherited by init which will clean it up properly.)  When you see
a zombie, it is most likely due to a programming error in the program
responsible for starting the now defunct process.  Programs which
start new processes must be prepared to call wait() or waitpid() in
order to free up the resources of children which have died.

The zombie is still consuming some kernel resources.  If you only
have a few of them, there is probably not much cause for concern.
If you have too many of them though, you may find that it's eventually
impossible to create new processes.

The correct solution when you have zombies is to fix the program
that's starting these processes.

Kevin