First of all, we can use the top command to check whether there are currently zombie processes on the server. You can see that there is 0 zombie at the end of the second line. If the number is greater than 0, it means that there are currently zombie processes on the server.
You can use ps and The grep command looks for zombie processes
ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
Command option description:
-A parameter lists all processes
-o Custom output field We set the display fields to the four parameters stat (status), ppid (process parent id), pid (process id), and cmd (command). Because the process with status z or Z is a zombie process, we use grep to capture it. Take the stat status as the zZ process
Z 12334 12339 /path/cmd
At this time, we can use kill -HUP 12339 to kill the zombie process
After running, you can run ps -A -ostat again, ppid,pid,cmd | grep -e '^[Zz]' to confirm whether the zombie process is killed. If killing the child process is invalid, you can try to kill its parent process to solve the problem. For example, in the above example, the pid of the parent process is 12334. Then we run
kill -HUP 12334 to solve the problem
But many zombie processes are difficult to kill. You have to find the original source and then deal with it.
For more Linux related articles on finding zombie processes (zombie processes), please Follow PHP Chinese website!