查系统重启原因需以 who -b 获取的启动时间锚点为核心,用 journalctl -b -1 结合 -p err、关键词筛选及 --since 定位异常;通过 journalctl -b -1 -n 100 -r 检查关机完整性,再以 dmesg -T 深挖 OOM、硬件错误与重启确认。

查系统重启原因,关键不是找“一条日志”,而是用 journalctl 搭配时间锚点和分层线索,把关机前的异常行为串起来。
先锁定准确重启时间
所有分析必须从这个起点开始——执行:
- who -b:输出类似 system boot 2026-09-15 22:41:03,这是内核启动时间戳,不受日志轮转或权限影响
- 立刻记下这个时间,后面所有日志筛选都要围绕它对齐
- 如果 who -b 无输出,说明上次启动可能没完成(比如卡在 initramfs),此时直接看 dmesg -T | head -n 50
查上一次启动的错误与关键词
journalctl -b -1 是核心命令,代表“上一次完整启动”的全部日志。不要翻全量,要带条件筛:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- 只看错误级事件:journalctl -b -1 -p err —— 快速定位服务崩溃、单元失败、依赖超时等直接诱因
- 扫描关机路径关键词:journalctl -b -1 | grep -i "shutting down\|reboot\|panic\|oom\|watchdog"
- 聚焦重启前 5–10 分钟:journalctl -b -1 --since "2026-09-15 22:36:00",避免被开机初期大量 info 日志淹没
确认是否正常关机完成
很多“重启”其实是硬中断或 panic,日志末尾会突然中断:
- 倒序查看最后 100 行:journalctl -b -1 -n 100 -r —— 新日志在前,一眼看出有没有 “Reached target Final Step”
- 若没出现该句,大概率是非正常关机(如内核 panic、强制断电、OOM 后僵死)
- 搜 systemd-shutdown 或 kernel 相关失败:journalctl -b -1 | grep -E "(Failed|Timed out|killed|aborted)"
深挖内核层线索(OOM 和硬件故障)
systemd 日志常只写“正在关机”,真正死因藏在内核环缓冲区里:
- 查 OOM Killer 记录:dmesg -T | grep -i "killed process" —— 输出含进程名和 PID,是内存耗尽的铁证
- 查硬件异常:dmesg -T | grep -A2 -B2 "BERT\|mce\|thermal" —— BERT 表示 BIOS 级 ECC 内存错误,mce 是 CPU/PCIe 故障,thermal 是过热强制关机
- 确认是否真重启:dmesg -T | tail -n 20 —— 结尾出现 Restarting system 或 Machine restart 才算闭环

















