Welcome to WebmasterWorld Guest from 54.196.208.6

Forum Moderators: bakedjake

Message Too Old, No Replies

what "defunct" process means?

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

Full Member

10+ Year Member

joined:Apr 19, 2003
posts:282
votes: 0


Hi,

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.

newbies

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

Full Member

10+ Year Member

joined:Mar 14, 2002
posts:325
votes: 0


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)

Full Member

10+ Year Member

joined:Apr 19, 2003
posts:282
votes: 0


Thank you Duckula for the reply.

It makes me comfortable.

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

Senior Member

WebmasterWorld Senior Member 10+ Year Member

joined:Aug 10, 2001
posts:1550
votes: 10


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.