On Unix and Unix-like computer operating systems, a zombie process or defunct process is a process that has completed execution but still has an entry in the process table: it is a process in the “Terminated state”
in other words Zombie processes are the dead processes sitting in the process table and doing nothing.
The term zombie process derives from the common definition of zombie — an undead person. In the term’s metaphor, the child process has “died” but has not yet been “reaped”.
Finding Zombie processes:
In Linux /Unix terminal write “ps -aux” command
# ps -aux
Such processes which are having “z” in their Stat column are Zombie processes.
Killing a Zombie Process:
unlike normal processes, the kill command has no effect on a zombie process.
send a SIGCHLD signal to the parent process of zombie which will instruct parents to reap their zombie children.
# kill -s SIGCHLD <PPID>
if this don’t work, then the last option is that we have to kill the parent process. we can easily find out the parent’s process ID with this command:
# ps aux -eo ppid | grep <Zombie Process ID>
# kill -9 <PPID>