What is httpd <defunct>?

A defunct process is typically one which has finished but the OS keeps it around until the parent waits for it to "collect" its status. You only normally see lots of this when you've written your own "forky" code and have bugs.

If you use

ps -Hwfe

You will get to see the process hierarchy and so what the parent is. Weird that it's an httpd process, it's normally pretty good at collecting its children. Unless your system is flat out, which is why you're using top in the first place...


A defunct process is a process that has exited but whose parent has not yet waited on it to read its exit status, leaving an entry in the process table. Also known as a zombie process. See the Wikipedia article for more information.


When a process dies on Unix, it sends an exit code to its parent. A defunct process, or "zombie", is one whose parent hasn't yet looked at the zombie's exit code. Once the parent gets the exit code (using the wait system call), the zombie will disappear.