Linux 进程“卡死”通常指进程无响应、不退出、不工作但还在运行(D 状态或死锁等)。处理思路分「先排查原因 → 再决定能否恢复 → 最后才是杀进程」。
下面按实战流程给你一套常用做法。
ps -ef | grep 进程名
ps -o pid,stat,cmd -p PID
常见状态:
R:运行中(可能只是 CPU 高)S:睡眠(正常)D:不可中断睡眠(通常是 IO/磁盘/网络卡死,kill 不掉)Z:僵尸进程(等待父进程回收)top
htop
iotop
free -h
如果是:
strace -p PID
read() / futex() → 锁或 IOconnect() → 网络cat /proc/PID/stack
或:
pstack PID
ls -l /proc/PID/fd
kill -15 PID
等几秒,看是否退出。
kill -9 PID
⚠️ 注意:
D 状态进程 kill -9 也杀不掉kill -9 即可ps -o pid,stat,cmd -p PID
如果是 D:
dmesg
mount
umount -l 挂载点
kill -9 父进程PID
或重启父进程
jstack PID
kill -9strace先看状态(ps),再看在干嘛(strace),能救就救,救不了再杀,D 状态只能等或重启。
如果你愿意,可以告诉我:
ps 状态我可以直接帮你判断该怎么做。