So how do I find out zombie process?
Use top or ps command:# top
OR# ps aux | awk '{ print $8 " " $2 }' | grep -w Z
Output:
Z 4104 Z 5320 Z 2945
[Solaris]
When a process dies, it becomes a zombie process. Normally, the parent performs a wait() and cleans up the PID. Sometimes, the parent receives too many SIGCHLD signals at once, but can only handle one at a time.
It is possible to resend the signal on behalf of the child via kill -18 PPID. Killing the parent or rebooting will also clean up zombies. The correct answer is to fix the buggy parent code that failed to perform the wait() properly.
Aside from their inherent sloppiness, the only problem with zombies is that they take up a place in the process table.
preap
# ps -efl|grep 551 0 Z root 551 550 0 0 - - 0 - - ? 0:00 <defunct> # preap 551 551: exited with status 0 # ps -efl|grep 551In above example this tool successfully remove zombie process. Otherwise the only way to kick them off is reboot