A zombie process is a child process whose parent has not reaped its return code (and thus the child process, while exited, still has its PID in the OS's process table and has not released its resources e.g., memory). In order to kill a zombie, the parent process must be terminated. When this occurs, the zombie becomes an orphan and is reparented to the init process. The init process then reaps the child's exit code, thus removing it from the OS's process table and freeing its resources.