如何读取 MacBook 睡眠与唤醒日志
使用 pmset 与统一日志建立带时间范围的唤醒时间线,理解原因字段,并保护隐私。
按时间范围查阅日志,谨慎解释唤醒原因,不把 DarkWake 错当作应用运行证据。
排查 MacBook 睡眠或唤醒问题时,先确定你要回答的问题:电脑是否进入过睡眠、何时出现唤醒、是否马上返回睡眠,还是屏幕只是关闭。日志提供系统记录的时间线,不能单独证明哪个应用或配件是根本原因。一次只调查一个具体事件,比无范围地搜索日志更容易得出有用结论。
记录测试时段和环境
先记下事件发生的本地日期和时间、时区、Mac 型号、macOS 版本、电源来源、机盖当时是否打开,以及连接的扩展坞、USB、蓝牙和显示器。也记下你采取的动作,例如从 Apple 菜单选择“睡眠”或合上机盖,以及屏幕是否亮起。若要复现问题,固定观察时长,并尽量保持电源、网络、配件和负载条件一致。对照测试时一次只改变一个条件;否则结果变化无法说明哪个因素相关。
使用只读命令收集时间线
打开“终端”,先使用下列只读命令查看电源配置、当前断言和近期电源历史:
pmset -g custom
pmset -g assertions
pmset -g log | tail -250
这些命令读取信息,不修改电源设置。-g custom 用于查看按电源来源配置的设置;-g assertions 显示执行命令当时有效的电源请求,是一个瞬时快照,并不能还原几个小时前或整夜的全部请求;-g log 可查看系统保留的电源历史。tail -250 仅限制终端显示的末尾行数,不会更改系统日志。不同 macOS 版本的选项、保留内容和输出格式可能不同,可用本机 man pmset 查看随系统安装的手册。
要查询统一日志中最近一小时、归属于 powerd 的消息,可运行:
log show --last 1h --style compact --predicate 'process == "powerd"'
这也是读取操作。将 1h 改成适当的观察范围之前,可先用 log show --help 查看本机支持的参数。筛选 powerd 有助于缩小范围,却不保证涵盖所有相关消息;内核、驱动或其他服务可能使用不同进程名称记录事件。日志可能经过隐私处理,较早记录也可能已过保留期限。
按顺序解释字段和事件
在 pmset -g log 结果中,先寻找与你记录的时间接近的睡眠和唤醒事件,再观察后续是否出现返回睡眠或更完整唤醒的记录。不同系统版本的字段和描述可能变化。若一行出现 Wake 或 DarkWake,它说明系统记录到相应电源事件或状态转换;它本身没有说明某个第三方应用正在运行,也没有证明具体应用、脚本或机盖角度工具发起了唤醒。
如果记录中出现 due to 后跟原因描述,应先把该描述理解为系统报告的原因类别或线索。例如,网络、维护、定时事件或外设相关字样可以提示你检查相应设置或连接设备,但不能自动构成完整因果链。紧接唤醒事件出现的进程也可能只是响应唤醒。Apple 开源的 PowerManagement 代码展示系统内部区分睡眠、DarkWake 等状态;内部实现并不保证每台 Mac 都具备相同能力或呈现相同日志内容。
比较多次事件时,应对齐时间范围,检查相同原因描述是否反复出现,并与电源来源和外设记录一起看。如果怀疑扩展坞,只断开扩展坞后按相同条件复测;结果变化后可再接回并重复一次。不要同时重置多个 pmset 设置,也不要仅凭单行日志推断硬件损坏。日志可以协助提出下一项检查,不能代替 Apple 对电池、传感器或逻辑板的硬件诊断。
分享日志前保护隐私
电源和统一日志可能包含设备名称、账户信息、网络细节、文件路径和使用时间。分享之前,逐行检查准备发布的片段,遮盖姓名、账户名、序列号、网络地址和私人路径。只提供事件前后所需的少量行,并补充 Mac 型号、macOS 版本、时区、电源来源和复现步骤。不要把未检查的完整诊断包或整段个人日志发布到公开论坛;若 Apple 支持需要更多资料,按其官方渠道和说明提供。
何时求助
如果在控制条件后问题仍可重复,或电脑异常发热、频繁意外唤醒、电池健康度提示检修,请记录已经进行的步骤并联系 Apple 支持或授权服务提供商。提供型号、系统版本、测试时长、供电方式和经过隐私处理的相关日志。若日志没有明确原因,不代表电脑一定没有问题;若日志出现某个原因标签,也不等于已经确认故障部件。机型和系统版本会影响电源行为,结论应限制在实际观察到的条件中。
常见问题
这些日志能证明究竟哪个应用唤醒了 Mac 吗? 不一定。原因字段可能指向子系统或类别,但日志未必提供完整因果链;时间接近也不能证明发起关系。
DarkWake 是否意味着某个脚本或应用在运行? 不能这样推断。DarkWake 表示电源管理状态,并不单独证明第三方应用或机盖角度脚本唤醒了电脑。可继续阅读DarkWake 与 FullWake 说明。
为什么命令没有显示旧事件? 统一日志保留期限有限,系统可能已经清理旧记录。应在问题复现后尽快收集,并记录准确时段。
如何把日志和合盖耗电联系起来? 同时记录固定时长前后的电池百分比及供电状态,再对照该时段的睡眠和唤醒历史。参阅合盖电池耗电测量指南。