Gemini on Question 13, Sep 20
How do I kill a zombie process in Linux that won't respond to SIGTERM?The short answer is: You cannot kill a zombie process directly because it is already dead.
That is why it won't respond to SIGTERM (or even SIGKILL / kill -9).
A "zombie" (defunct) process is just an entry left in the process table. The process has finished executing, but its parent process hasn't read its exit status yet (a process called "reaping").
To get rid of a zombie process, you must target its parent process. Here is exactly how to do it:
Step 1: Find the Parent Process ID (PPID)
First, you need to find the ID of the process that spawned the zombie. Run the following command, replacing <ZOMBIE_PID> with the PID of your zombie process:
ps -o pid,ppid,state,cmd -p <ZOMBIE_PID>
Look at the PPID column. This is the Parent Process ID.
(Note: If you don't know the zombie's PID, you can list all zombies on your system with ps aux | awk '{ print $8 " " $2 }' | grep -w Z)
Step 2: Nudge the Parent Process
Sometimes, the parent process just needs a reminder to check on its children. You can send a SIGCHLD signal to the parent. This tells the parent, "One of your child processes has stopped, please acknowledge it."
kill -s SIGCHLD <PPID>
Check if the zombie is gone. If it is, you're done! If not, proceed to Step 3.
Step 3: Kill the Parent Process
If the parent process is frozen, poorly programmed, or ignoring the SIGCHLD signal, the only way to remove the zombie is to kill the parent process.
When a parent process dies, all of its child processes (including zombies) are "orphaned." The Linux system (specifically the init or systemd process, which is PID 1) will automatically adopt these orphans and immediately reap the zombies.
⚠️ WARNING: Before doing this, check what the parent process is! If the parent is a vital system service or your active shell, killing it will shut down that service or log you out.
To kill the parent:
kill -15 <PPID>
If the parent also refuses to die gracefully, force kill it:
kill -9 <PPID>
Once the parent is dead, the system will automatically clear the zombie process from the process table.
Exact recordShowHideThe model id, the run, the verbatim text with line numbers and its full sha256
- Scored
- answered
- Received
- 2026-09-20 09:05:44 UTC
- Run
- 20260920T090019Z-bbedf3
- Served by
- Google · HTTP 200 · finish stop
- Size
- 2,169 characters · 1,478 tokens out incl. hidden reasoning · 12.7 s
End of response · 43 lines · 2,169 characters · sha256 e73cab549a215eac03182748a4ff872ec7e6f0290ce4fd7836847a16a1068fb1