mac合盖掉电30%以上说明未真正休眠,需通过终端查唤醒日志、活动监视器找防睡眠进程、禁用tcpkeepalive/proximitywake/womp、启用hibernatemode 25深度休眠、关闭power nap和高风险定位服务,并拔除外设。

Mac合盖睡眠一晚上掉电30%以上,说明系统根本没真正休眠,而是被后台进程、网络活动或硬件唤醒机制持续拉起——必须立刻定位那个每15分钟就偷偷“睁眼”一次的耗电元凶。
第一步:用终端看唤醒日志,锁定高频唤醒源
打开【终端】(访达 → 应用程序 → 实用工具),粘贴执行:
pmset -g log | grep -E "(Wake|DarkWake)" | tail -25
回车后重点找带【Wake reason】的行。括号里写着什么,就是谁在叫醒你:
• “Network” 或 “tcpkeepalive” → Wi-Fi在后台收邮件、iCloud同步;
• “USB” 或 “EHC2” → 外接拓展坞、键盘、硬盘没拔;
• “BT” → 蓝牙鼠标/耳机保持连接;
• “rtc (alarm)” → 定时任务或旧版输入法残留闹钟;
• “powerd” → 系统电源管理自身紊乱,需重置固件。
如果同一 Wake reason 每10~15分钟重复出现,不用往下查了,直接针对性处理。
第二步:查活动监视器里“防止睡眠”的进程
打开【活动监视器】→ 切换到【能耗】标签页。
右键点击列标题区域 → 勾选【防止睡眠】,让它显示出来。
点击【防止睡眠】列,按降序排列,找出值为“是的”且【10分钟能耗】数值明显偏高的进程。
【Amphetamine、Parallels Desktop、Docker Desktop、VLC、OneDrive、CCleaner、GitHub Desktop】 这些软件哪怕窗口已关,只要后台服务没退出,就会持续持有 PreventSystemSleep 断言,强制 Mac 保持清醒状态。选中后点左上角【X】→ 选择“退出”(不是强制退出)。
第三步:禁用三类底层唤醒机制(终端命令)
这三步必须依次执行,每条都需输入管理员密码:
sudo pmset -b tcpkeepalive 0
sudo pmset -b proximitywake 0
sudo pmset -b womp 0
tcpkeepalive 是 Wi-Fi 模块在睡眠中维持 TCP 连接的机制,关掉它,iCloud 和邮件再也不能半夜“诈尸”;proximitywake 关闭蓝牙基带监听,womp 关闭网卡的远程唤醒能力——这三者正是 M 系列芯片上最隐蔽的耗电开关。
第四步:确认并切换为深度休眠模式
在终端中执行:
pmset -g | grep hibernatemode
若返回 hibernatemode = 0 或 3,说明当前是浅休眠(仅靠内存供电),一整晚掉电30%完全可能。
执行以下命令强制启用安全深度休眠:
sudo pmset -b hibernatemode 25
该模式会将内存内容完整写入硬盘,合盖后 RAM 断电,仅靠 SSD 维持状态,待机耗电可压至 1%~2%/8小时。唤醒时稍慢(约4~5秒),但换来整晚不掉电,值得。
第五步:关闭 Power Nap 与高风险定位服务
方法一:禁用 Power Nap
【系统设置】→【电池】→【选项】→ 关闭【启用 Power Nap】(电池供电 & 电源适配器两个状态都要关)。
方法二:精简定位服务
【系统设置】→【隐私与安全性】→【定位服务】→【系统服务】→【详细信息】→ 关闭:
• 重要地点
• 基于位置的提醒
• 查找我的 Mac(如无需远程定位)
定位服务本身不耗电,但 locationd 进程一旦被高频调用,就会触发 DarkWake,每次唤醒都激活 Wi-Fi+蓝牙+CPU,一晚上几十次,掉电30%毫不意外。
第六步:拔掉所有外设并重置 SMC(仅 Intel 机型)
第一步:关机,按住 左Shift + 左Control + 左Option + 电源键 10秒 → 松手 → 等待5秒后正常开机。
第二步:开机时立即按住 Command + Option + P + R,听到启动声第二次响起后松手(Intel 机型适用)。
M 系列芯片无需重置 SMC,但务必确保合盖前已拔掉所有 USB-C 拓展坞、外接硬盘、HDMI 线、蓝牙接收器——这些设备即使未通电,也可能通过 USB 协议向 Mac 发送唤醒信号。











