Welcome to WebmasterWorld Guest from

Forum Moderators: bakedjake

Message Too Old, No Replies

what "defunct" process means?



6:44 pm on Apr 8, 2004 (gmt 0)

10+ Year Member


I see some processes in "top" having "(defunt)" with the process name. What does it mean? What should I do about those "problematic" processes?

Thank you.



4:53 am on Apr 9, 2004 (gmt 0)

10+ Year Member

A "defunct" is also known as a "zombie". It means that it's finished - but still depends on a "parent" which is still alive.

The only way to kill a zombie is with a gun shot to the brain^W^W^W^W^W^W^W^W finding the parent process and terminating it.

As nasty as they are on the process table they are not harmful and don't consume resources.


5:13 am on Apr 9, 2004 (gmt 0)

10+ Year Member

Thank you Duckula for the reply.

It makes me comfortable.


9:47 am on Apr 9, 2004 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member

Other than Windows, unix manages an explicit parent-child relationships between processes. When a child process dies, the parent will receive a notification. It is then the duty of the parent process to explicitly take notice of the childs demise by using the wait() system call. The return value of the wait() is the process ID of the child, which gives the parent exact control about which of its children are still alive.

As long as the parent hasn't called wait(), the system needs to keep the dead child in the global process list, because that's the only place where the process ID is stored. The purpose of the "zombies" is really just for the system to remember the process ID, so that it can inform the parent process about it on request. If the parent "forgets" to collect on its children, then the zombie will stay undead forever. Well, almost forever. If the parent itself dies, then "init" (the system process with the ID 0) will take over fostership over its children and catch up on the neglected parental duties.


Featured Threads

Hot Threads This Week

Hot Threads This Month