在 Debian(以及大多数 Linux 发行版)中,“进程卡死”通常分为几种情况:占用 CPU 不释放、处于 D 状态(不可中断睡眠)、僵尸进程、或系统整体无响应。下面按常见场景给你一套处理思路。
ps aux
top
htop
重点关注:
R:运行中(可能死循环)D:不可中断睡眠(通常是磁盘 I/O 或 NFS 卡死,不能 kill)Z:僵尸进程S:睡眠(正常)kill PID
或
kill -TERM PID
kill -9 PID
⚠️ -9 不会给进程清理机会,可能导致数据丢失。
ps -eo pid,stat,comm | grep D
特征:
Dkill -9 无效dmesg | tail
lsblk
smartctl -a /dev/sdX
mount | grep nfs
ps aux | grep Z
特点:
kill -9 无效找到父进程:
pstree -p | grep PID
杀掉父进程:
kill -9 PPID
父进程死后,僵尸会被 init 回收。
Ctrl + Alt + F2
登录后杀进程。
echo b > /proc/sysrq-trigger
(立即重启,不等文件系统)
安全顺序:
echo s > /proc/sysrq-trigger # sync
echo u > /proc/sysrq-trigger # remount ro
echo b > /proc/sysrq-trigger # reboot
systemd-run --scope -p MemoryMax=500M ./app
systemd 服务 + Restart=on-failurenetdataprometheus + node_exporter如果你能贴出:
ps aux 或 top 输出我可以给你更精确的解决办法。