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.
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 ...)) {
...
}