news 2026/9/6 9:53:57

凌晨三点的 Mac 自动重启:我是如何用命令行揪出“真凶“的

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
凌晨三点的 Mac 自动重启:我是如何用命令行揪出“真凶“的

早上起来打开 MacBook,发现 Dock 上的应用全没了——系统似乎在夜里重启过。打开终端敲了一条命令,确认了我的猜测:


$ lastrebootshutdown|head-5reboot9503:22shutdown9503:22reboot9103:53shutdown9103:52reboot83100:16

凌晨 3 点 22 分,我的 Mac 自己关机又重启了。不是我操作的,也不是停电——电池一直插着电源。那到底是谁干的?

于是有了这篇排查记录。全文按「定位时间 → 查电源日志 → 排除崩溃 → 交叉验证 → 下结论」五步走,每一步都附上可直接复制的命令,方便你照着排查。

第一步:先确认发生了什么

任何排查的第一步,都是先把时间线拉出来last命令是最快的入口:

# 查看重启和关机历史lastrebootshutdown|head-20

输出非常直观:每一行一个事件,左边是类型(reboot/shutdown),右边是时间。

怎么读

  • reboot 和 shutdown 时间挨得很近→ 系统重启了(正常或异常)
  • 只有 reboot 没有 shutdown→ 可能是断电或强制重启
  • shutdown 后很久才 reboot→ 主动关机后手动开机

从输出看,9月5日 03:22 关机紧接着 03:22 重启,说明是一次完整的重启过程。问题是:为什么?

第二步:深挖电源管理日志

macOS 有一个非常强大但很少有人用的工具——pmset。它的-g log参数能吐出一份极其详细的电源管理日志,精确到秒级。

# 查看完整电源管理日志pmset-glog# 只看特定时间段的日志pmset-glog|grep"2026-09-05 03:"

输出很长,但只要盯着几个关键词看,很快就能找到线索。我直接跳转到 03:07 左右,发现了一连串有意思的记录:

03:07:37 triggersRestart 03:07:37 SoftwareUpdate.TonightActivityTrigger 03:07:38 RestartCountdownOperation 03:16:33 PrepareUpdate 03:20:53 屏幕短暂亮起(显示通知) 03:21:23 CountdownNotification 03:22:20 开始关机 03:22:41 系统重新启动

链条非常完整:系统调度了重启 → 触发了夜间软件更新 → 开始倒计时 → 准备更新包 → 弹出通知 → 执行关机重启

看到这里,答案其实已经出来了——就是 macOS 的夜间自动更新。但做排查要讲证据链,不能只靠一条线索就下结论。继续验证。

第三步:排除崩溃的可能

如果是系统崩溃导致的重启,性质就完全不一样了。所以下一步必须确认:这是正常重启,还是异常崩溃?

macOS 把所有诊断报告都存在一个固定目录里:

# 列出系统诊断报告ls-la/Library/Logs/DiagnosticReports/

重点找三类文件:

文件类型命名特征说明
.panicKernel-YYYY-MM-DD-*.panic内核恐慌 → 系统崩溃,严重问题
.shutdownStallshutdown_stall_*.shutdownStall关机卡顿 → 关机慢,但不是崩溃
.ipsAppName_*.ips单个应用崩溃

检查结果:没有 .panic 文件(好消息,不是系统崩溃),但有一个shutdown_stall_2026-09-05-032220文件。

什么是 shutdown stall

关机过程中某些进程退出较慢,导致总关机时间超过了系统预期阈值。系统会生成一份 spindump 报告用于分析,但这不是崩溃,只是"关机慢了点"。在自动更新重启时尤其常见——后台跑的进程多,自然关得慢。

第四步:交叉验证,锁定真相

单看一次事件可能是巧合。我翻了一下历史记录,发现了规律:

日期时间类型共同点
8月31日00:16shutdown_stall凌晨 · 自动更新重启
9月1日03:53shutdown_stall凌晨 · 自动更新重启
9月5日03:22shutdown_stall凌晨 · 自动更新重启

三次全部发生在凌晨,模式完全一致——都是 macOS 的夜间自动安装系统更新功能在工作。

最后再确认一下电池和硬件状态,排除电源因素:

循环计数:295状态: 正常 最大容量:82%


电池健康度 82%,循环 295 次,状态正常。电源方面没有问题。


结论:虚惊一场

最终结论很简单:这不是故障,是 macOS 在凌晨自动安装了系统更新并重启。关机过程稍微慢了一点(生成了 shutdown_stall 报告),但完全在正常范围内。

如果不想让系统在夜里偷偷重启,可以去系统设置 → 通用 → 软件更新 → 自动更新里关掉"安装 macOS 更新"。不过说实话,自动更新也没什么不好——至少说明你的系统在保持最新。

工具包:以后再遇到怎么办

把这次排查用到的命令整理成一张速查表,存好下次直接用。

🔍 Mac 关机原因排查五步走

  1. 定位时间点— 用last reboot shutdown找到目标关机/重启时间
  2. 查看电源日志— 用pmset -g log看关机前后的事件链,找 SoftwareUpdate、DarkWake 等关键词
  3. 排除崩溃— 检查/Library/Logs/DiagnosticReports/有没有 .panic 文件
  4. 确认硬件— 用system_profiler SPPowerDataType看电池和电源状态
  5. 交叉验证— 看历史记录有没有规律,比如每次都是凌晨 → 自动更新

常用命令速查

# 1. 关机/重启历史lastrebootshutdown|head-20# 2. 完整电源日志pmset-glog# 3. 查看关机原因代码log show--predicate'eventMessage contains "Previous shutdown cause"'--last7d# 4. 诊断报告目录ls-la/Library/Logs/DiagnosticReports/# 5. 电池和电源信息system_profiler SPPowerDataType pmset-gbatt# 6. 当前电源设置pmset-g

小提示

pmset -g log的输出非常长,建议用grep过滤时间段或关键词,或者重定向到文件后慢慢看:pmset -g log > power_log.txt


最后说两句

其实 Mac 绝大多数"莫名其妙的重启"都不是硬件问题。系统更新、睡眠维护、第三方应用崩溃——这些才是最常见的原因。比起直接预约天才吧,先花十分钟在终端里敲几条命令,往往就能搞清楚状况。

当然,如果查到了 .panic 文件,或者多次出现不明原因的关机,那还是尽快送修比较稳妥。硬件故障这种事,越早发现越好。

希望这篇记录对你有用。下次 Mac 再"偷偷重启",不用慌,按步骤查就行。


技术笔记 · macOS 故障排查系列

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 9:53:13

数据采集全链路解析:从传感器信号调理到数据文件生成

1. 采集链路全景概览 1.1 一次采集到底在说什么 传感器是感知物理世界的起点,但真正能让数据发挥作用,靠的是从传感器到数据文件的整个链路。很多人拿到一个传感器模块,接上开发板,读出来的数值在串口里能显示,就觉得…

作者头像 李华
网站建设 2026/9/6 9:53:01

HarmonyOS元服务开发全流程指南:从工程初始化到上架避坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 9:52:09

示波器带宽设置全解析:从原理到实操,避免测量误差

提到示波器,很多人拿到信号的第一反应就是按 Autoset。这动作本身没错,但问题在于 Autoset 只能帮你把波形调到屏幕中间,它不会替你判断带宽设置合不合适。我见过不少工程师,按完 Autoset 就开始读 Vpp、读上升时间,结…

作者头像 李华
网站建设 2026/9/6 9:51:06

Claude-API-guard:在CI中构建SDK变更检测门禁

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 9:47:56

跨境电商数据安全实战:从加密备份到分级管控的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 9:47:51

8张H20跑GLM-5.3深度实测:显存够用,算力需精打细算

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华