不一定。Debian(或任何 Linux)上的僵尸进程(zombie / defunct)通常不需要重启系统,而且重启一般也不是正确做法。
僵尸进程是已经退出、但父进程还没调用 wait() 回收它的进程。它:
ps 里状态是 Z不能用 kill -9 杀掉僵尸进程,因为它已经死了,只是还没被回收。
看父进程是谁
ps -l
# 或
ps -eo pid,ppid,stat,comm | grep Z
找到 PPID(父进程)
让父进程回收它
systemctl restart 服务名
SIGCHLD:kill -SIGCHLD 父进程PID
(不一定有效,取决于程序)父进程本身有问题
kill -9 父进程PID
init / systemd(PID 1)接管并回收父进程是 PID 1(init/systemd)
只有以下情况才考虑重启:
僵尸进程不用重启系统,找到并重启/修复它的父进程即可。
如果你愿意,可以把 ps aux | grep Z 或 pstree 的输出发我,我帮你具体分析。