Zombie processes, sometimes called defunct processes, are processes that have completed, but their parent process has not yet received status of their termination. It's not unusual to see a few zombies for a few seconds if the parent process is busy and has not issued a wait() system call to collect the status of a child/children. However, if the zombies persist (their PIDs are always the same), this is an indication that the parent application is either poorly coded, or wedged (looping). Given that your CPU usage is low, I'm guessing the parent(s) aren't wedged.
Zombie processes cannot be killed, as you've likely found out. The good news is that the only system resources they are taking is the slot in the process table; all other real resources (memory, sockets, open files, etc.) were closed/released when the process ended. The zombies only become a problem when their numbers start to "clog" the process table which might have a finite size.
If you have the option to stop and restart the parent, then your zombie processes will be cleaned up with the parent. If the parent is some service that you must keep running in order to prevent down-time, then you're stuck.
If you want to see which process(es) own the zombies, capture the output of a ps -elf (or ps -ajx on FreeBSD) and look for the zombies. For each zombie the parent process id (PPID) should be listed (column 3 usually) and that can be used to find it's parent (look for the process with the PPID you found listed as the PID -- usually column 2).
This illustrates the output from the ps command showing the process a.out having a defunct/zombie child process:
hello all,
when we are creating a process by using fork, if the child process terminates before parent, the child process exists as zombie.. My doubt is when that child process terminates, how come that process exists further and show as a zombie process..can anyone help me to clear about this? (1 Reply)
What is the overhead associated with zombie process?Is it running out of process-ID?:confused:
Since some information is stored in process table..
Thanks in Advance (4 Replies)
Hello
I try to googled it , but I dint get sufficient answer :( ..
When I can see zombie running on server do they consume system resources or not ?
I have read that is not good to kill them with signal 9 cause it might cause more troubles .. why is kill -9 so harmfull?
thanks (2 Replies)
Is there an equivilant to the preap command in AIX that would allow me to get rid of a zombie process. I am new to AIX, moving over from Solaris and in the past I have been able to preap the pid on the defunct process to clean them up. I have looked around and the best I can see is that it may... (3 Replies)
dear friends,
in an interview they asked me what is zombie process. how we can identifying these process.if can you kill all zombie process. (8 Replies)
Hi
I need help because I don't know if it is possible to add a find inside a cat.
like I have a file with the pid of the process that use to became zombie. And I have the same pid stored in the var (pid1)
now, I have no clue how to check if the the find finds the pid or even if it's... (2 Replies)
Hello,
i am very very puzzled,
im doing this project for school, its a deamon logger, but anyways
I'm supposed to run the daemon, let it run on the backgroun, and then run a different program (from command like prompt). but when i run my daemon, it never goes back to the nova> prompt. :(
i dont... (3 Replies)
How can you find a zombie file on the system. I have been in the database side of the system to search for Orphan files removed the orphan files, but still got the zombie file. When you run a top command it says there is a zombie process that is running i would like to find it. How can i do... (5 Replies)