zombie process can't be killed

user12707 picture user12707 · Jun 13, 2011 · Viewed 11.4k times · Source

Is there a way to kill a zombie process? I've tried calling exit to kill the process and even sending SIGINT signal to the process, but it seems that nothing can kill it. I'm programming for Linux.

Answer

ninjalj picture ninjalj · Jun 13, 2011

Zombie processes are already dead, so they cannot be killed, they can only be reaped, which has to be done by their parent process via wait*(). This is usually called the child reaper idiom, in the signal handler for SIGCHLD:

while (wait*(... WNOHANG ...)) {
    ...
}