要确认MacBook是否被非授权重启或排查异常重启原因,需依次执行:1. 用last reboot查看开机时间(首行为最近一次);2. 用last shutdown交叉验证关机时间;3. 用log命令检索统一日志中的启动上下文;4. 检查~/Library/Logs/DiagnosticReports/中Kernel或Power诊断报告定位崩溃根源。

要确认MacBook是否被他人非授权重启过,或排查系统异常重启原因,必须直接读取内核写入的原始日志,不能依赖图形界面缓存时间——因为系统报告可能延迟更新,而/var/log/wtmp每秒落盘一次,关机前强制刷写。
用last reboot命令快速提取所有开机时间点
这一步操作起来很简单,直接把命令敲进去就行。
打开“访达”→按下Shift + Command + 空格调出聚焦搜索→输入“终端”并回车启动。
在终端中输入:last reboot 并按回车。
输出结果每行以“reboot ~”开头,后面跟着星期、月、日、时:分,例如:reboot ~ 四 7月3 14:22。注意:【首行即为最近一次开机时间,倒序排列】。
若只想看最近5次,追加管道限制:last reboot | head -5。
交叉验证关机时间,判断是否为计划内重启
单纯看reboot记录容易误判——比如断电后自动恢复供电触发的开机,实际前一次是异常关机。必须同步查shutdown事件才能还原完整启停链。
在同一个终端窗口中,输入:last shutdown 并回车。
滚动查看输出,找时间最接近上一条reboot记录的shutdown行,例如:shutdown ~ 四 7月3 14:20 → reboot ~ 四 7月3 14:22,间隔仅2分钟,说明是正常重启流程。
如果reboot前没有匹配的shutdown(或间隔超24小时),大概率是断电、内核崩溃或强制长按电源键导致的非正常开机。
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
用log命令检索统一日志中的启动上下文
macOS 10.12之后所有启动过程都被结构化记录进统一日志数据库,log命令能挖出比wtmp更细的信息,比如哪个服务拖慢了启动、是否加载了第三方内核扩展。
方法一:查本次启动全过程
输入:log show --predicate 'eventMessage contains "startup"' --last boot
方法二:查过去30天所有重启事件及触发进程
输入:log show --predicate 'eventMessage contains "reboot"' --last 30d | grep -E "(reboot|process|subsystem)"
方法三:导出到桌面文本文件便于逐行分析
输入:log show --predicate 'eventMessage contains "reboot"' --last 14d > ~/Desktop/reboot_raw.log
注意:【该命令输出含毫秒级时间戳,但首次运行会卡顿3~5秒——这是日志索引重建过程,耐心等待不要中断】。
检查诊断报告定位非正常关机根源
只有Kernel Panic、温度保护、电源故障等硬性崩溃才会生成诊断文件,普通关机不会写入此目录,所以这里专治“莫名其妙黑屏重启”类问题。
第一步:在“访达”中按下Shift + Command + G,粘贴路径:~/Library/Logs/DiagnosticReports/ 并回车。
第二步:按名称排序,找文件名含“Kernel”或“Power”且创建日期与可疑重启时间吻合的报告,例如:Kernel_2026-07-03-142233_MacBookAir.shutdown。
第三步:双击打开该报告,直接跳转到“Failure Reason”段落,里面会明确写出关机代码(如:0x0000000000000001)和触发模块(如:AppleSMC::handleInterrupt)。










