能进TTY说明内核正常,图形界面或某服务假死;完全无响应才可能是Kernel Panic或硬件故障。

怎么快速判断系统是“假死”还是真崩溃
别急着重启,先按 Ctrl+Alt+F2 切到 TTY 终端——能登录说明内核和基础服务还在跑,大概率是图形界面、sshd 或某个关键服务(比如 nginx、mysql)挂了;如果键盘无响应、屏幕冻结、ping 不通且控制台完全静默,才要怀疑 Kernel Panic 或硬件故障。
这时候别盲操作:
- 能进 TTY 就立刻执行 uptime 和 top 看负载是否爆表
- 用 systemctl is-active sshd 检查核心服务状态
- 运行 journalctl -b -p 3 只看本次启动的错误级日志,比翻全量日志快得多
根分区满或内存耗尽时的即时干预动作
这两类问题占线上宕机的七成以上,但多数能秒级缓解,不一定要重启:
- df -h 发现 / 使用率 100%:
• 快速定位大日志:du -sh /var/log/* 2>/dev/null | sort -hr | head -5
• 清理 systemd 日志:journalctl --vacuum-size=100M(比 rm 安全,不破坏索引)
• 别直接清 /var/log/messages,先 cp 备份再截断:cp /var/log/messages messages.$(date +%s) && > /var/log/messages
- free -h 显示可用内存几乎为 0:
• 查 dmesg -T | grep "killed process" 确认是否触发 OOM Killer
• 临时释放页缓存:sync && echo 3 > /proc/sys/vm/drop_caches(仅缓解,非修复)
• 杀掉非关键进程前,先用 ps aux --sort=-%mem | head -5 锁定内存大户
进不去系统时,单用户模式怎么安全进入和修复
GRUB 启动菜单是救命入口,但加错参数可能进不了系统甚至损坏引导:
可编程序控制器,英文称Programmable Controller,简称PC。但由于PC容易和个人计算机(Personal Computer)混淆,故人们仍习惯地用PLC作为可编程序控制器的缩写。它是一个以微处理器为核心的数字运算操作的电子系统装置,专为在工业现场应用而设计,它采用可编程序的存储器,用以在其内部存储执行逻辑运算、顺序控制、定时/计数和算术运算等操作指令,并通过数字式或模拟式的输入、输出接口,控制各种类型的机械或生产过程。本平台提供PLC编程入门基础知识下载,需要的朋友们下载看看吧!
- 在 GRUB 菜单按 e 编辑启动项后:
• 找到以 linux 或 linux16 开头的行(不是 initrd 行)
• 末尾添加 systemd.unit=rescue.target(推荐)或 init=/bin/bash(更底层,但需手动 remount)
• 切忌加 single:旧发行版可用,新 systemd 系统已弃用,大概率黑屏
- 进入后第一件事是重挂根分区为可写:mount -o remount,rw /
- 修改完密码或配置后,务必运行 sync 再 exec /sbin/init(或 reboot -f),避免缓存未刷盘导致二次故障
哪些操作绝对不能在应急时做
很多“顺手一清”动作会把小问题变成不可逆灾难:
- 不要 rm -rf /tmp/* 或 /var/tmp/*:某些服务(如 dbus、systemd)依赖其中 socket 文件,删完可能无法重启服务
- 不要直接 echo > /var/log/xxx.log 清空正在被轮转的日志:logrotate 可能卡住,后续日志写不进去
- 不要在没确认磁盘健康前执行 fsck:smartctl -a /dev/sda 先看 Reallocated_Sector_Ct 和 Current_Pending_Sector 是否异常
- 不要跳过 journalctl -b -p 3 直接 systemctl reboot:你可能永远不知道下一次崩溃是不是同一原因反复发生
真正卡住的时候,最有效的动作往往是最笨的:先拷一份 dmesg -T 和 journalctl -b 输出,再动手。现场证据一旦覆盖,就只能靠猜了。









