zombie process
also: defunct process, undead process
A zombie process is a child process that has terminated but whose exit status has not yet been read by its parent process, leaving an entry in the process table.
When a process completes, the kernel keeps a minimal entry in the process table containing the child's exit status until the parent reads it via wait() or waitpid(). During this brief interval, the child is called a zombie or defunct process.
Zombies normally exist only momentarily—once the parent collects the exit status, the entry is removed. However, if a parent never calls wait(), zombies accumulate and consume process table slots. For example, a parent process that spawns children but never reaps them will eventually clutter the system with zombie entries.
You can observe zombies using ps aux, where they appear with a Z state and may show <defunct> in their command. The only cleanup is for the parent to be terminated (often by the init process), which then adopts and reaps the orphaned zombies.