I am going to start by defining what is a Zombie Process
Well a Zombie Process is the actually the state of the process when the child dies before the parent process. In this case the structural information of the process is kept in the process table.
Danger !!!
Processes in Zombie State don’t use up any system resources. (Actually, each one uses a very tiny amount of system memory to store its process descriptor.) However, each zombie process retains its process ID (PID). If zombies are accumulating at a very quick rate the entire pool of available PIDs will eventually become assigned to zombie processes, preventing other processes from launching.
In any case, a few zombie processes hanging around are no problem – although they do indicate a bug with their parent process on your system.
How to remove or get rid of Zombie Processes ?
You can't kill a Zombie Process the normal way as it does not exist.
One way is by sending the SIGCHLD signal to the parent process. This signal tells the parent process to execute the wait() system call and clean up its zombie children.
Example of the command:
How can you list your Zombie Processes ?
Normally you can see them by using the top command :
But also we can
Example of the command: (ps aux | grep -w Zs)