On this page you can get a detailed analysis of a word or phrase, produced by the best artificial intelligence technology to date:
On Unix and Unix-like computer operating systems, a zombie process or defunct process is a process that has completed execution (via the exit
system call) but still has an entry in the process table: it is a process in the "Terminated state". This occurs for the child processes, where the entry is still needed to allow the parent process to read its child's exit status: once the exit status is read via the wait
system call, the zombie's entry is removed from the process table and it is said to be "reaped". A child process always first becomes a zombie before being removed from the resource table. In most cases, under normal system operation zombies are immediately waited on by their parent and then reaped by the system – processes that stay zombies for a long time are generally an error and cause a resource leak, but the only resource they occupy is the process table entry – process ID.
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". Also, unlike normal processes, the kill
command has no effect on a zombie process.
Zombie processes should not be confused with orphan processes: an orphan process is a process that is still executing, but whose parent has died. When the parent dies, the orphaned child process is adopted by init
(process ID 1). When orphan processes die, they do not remain as zombie processes; instead, they are wait
ed on by init
. The result is that a process that is both a zombie and an orphan will be reaped automatically.