查看linux休眠/唤醒日志需结合systemd服务与内核日志:用journalctl -u systemd-{suspend,hibernate,hybrid-sleep}.service和-u systemd-logind查服务行为,加-b限定本次启动;用journalctl -k | grep -i "suspend|resume|pm:"查内核电源事件;配合--since/--until按时间窗口精准过滤,并用-p err排查失败原因。

要查看 Linux 系统休眠(suspend)与唤醒(resume)相关日志,核心是筛选出内核和电源管理模块产生的关键事件,journalctl 本身不直接标记“休眠/唤醒”,但会记录 systemd-logind、kernel 及 systemd-suspend.service 等单元的行为。需结合服务名、关键词和时间点综合定位。
查 systemd-suspend 相关服务日志
系统执行休眠/唤醒时,systemd 会调用 suspend/resume 服务并记录完整流程:
- journalctl -u systemd-suspend.service -u systemd-hibernate.service -u systemd-hybrid-sleep.service —— 查看实际触发休眠的单元日志(注意:不同休眠模式对应不同 service)
-
journalctl -u systemd-logind —— logind 负责接收用户请求(如 GUI 中点击“挂起”),会记录
Suspend=yes或PrepareForSleep=yes等事件 - 加 -b 限定本次启动,避免混入旧日志:journalctl -b -u systemd-logind
搜 kernel 层电源事件关键词
真正进入休眠和恢复硬件状态由内核完成,日志集中在 kernel 缓冲区,journalctl 可等效于 dmesg:
- journalctl -k | grep -i -E "suspend|resume|hibernate|PM:" —— 筛选内核中与电源管理(PM)相关的行
- journalctl -k --since "1 hour ago" | grep -A2 -B2 "PM: suspend" —— 查最近一小时,并显示匹配行前后两行,便于看到上下文(如设备 suspend 成功/失败)
- 常见成功标记:
PM: suspend entry、PM: suspend exit、PM: resume console
按时间范围精准定位休眠窗口
休眠/唤醒是瞬时事件,通常发生在几秒内,配合时间过滤最有效:
- 先用 journalctl --list-boots 查看最近几次启动,确认休眠是否发生在某次 boot 期间
- 若知道大致时间(比如今天上午 10:23 休眠),运行:journalctl --since "2026-09-16 10:22:00" --until "2026-09-16 10:24:00" | grep -i -E "suspend|resume|logind|sleep"
- 也可用相对时间:journalctl --since "5 minutes ago" | grep -i "prepareforsleep\|suspend\|resume"
辅助验证与排查线索
有些异常不会直接打出 “suspend” 字样,但可通过行为间接判断:
- journalctl _COMM=systemd-logind —— 只看 logind 进程输出,排除其他干扰
- 检查失败原因:journalctl -p err -u systemd-logind -u systemd-suspend.service —— 查错误级别日志,常含
Failed to suspend system或设备超时信息 - 唤醒后网络或 USB 失效?追查对应驱动:journalctl -k | grep -i "usb\|network" | tail -30











