我之前一直在用 AlDente 管理 MacBook 的电池充电,设置 80% 上限之类的。但有个问题一直困扰我——AlDente 在放电的时候,macOS 会认为”电池在掉电→该休眠了”,然后合盖就直接睡了。
试过 Amphetamine,大部分时候没问题,但偶尔还是会翻车。后来发现有个更根本的解法,一行命令搞定。

问题在哪
macOS 的休眠逻辑其实挺聪明的,但 AlDente 限充之后,电池处于放电状态,系统就判断”没在充电 + 空闲→休眠”。合盖更直接,直接触发 sleep。
Amphetamine 之类的应用是通过创建 assertion 来阻止休眠的,但它们是用户态的进程,有时候会被系统级别的行为覆盖掉。
解法:pmset disablesleep
终端里跑两行:
| sudo pmset -a disablesleep 1sudo pmset -a sleep 0 |
第一行告诉 macOS “任何情况下都不要进入睡眠”,第二行把休眠定时器设成 0(永不)。执行一次就行,重启后依然生效。
跑完之后,不管合不合盖、插不插电、放不放电,系统都不会休眠。显示器该关还是关,不影响。
想恢复的话:
| sudo pmset -a disablesleep 0sudo pmset -a sleep 10 |
为什么这比 Amphetamine 靠谱
Amphetamine 是在应用层阻止休眠,系统层面的 sleep 逻辑有时候还是会赢。pmset 是直接改系统的电源管理配置,属于内核级别的设置,优先级更高。
我现在三个同时跑着:pmset 禁止休眠 + Amphetamine + UURemote,三重保险,反正不会再翻车了。
怎么验证
跑 pmset -g 看当前设置:
| pmset -g |
看到 SleepDisabled 1 和 sleep 0 就说明生效了。
终端
也可以看 assertion 状态:
| pmset -g assertions |
能看到哪些进程在阻止休眠。
注意
这个设置对所有场景生效,包括合盖。如果你只是想合盖不睡但开盖正常休眠,可能需要更精细的配置
不插电的情况下合盖不睡会持续耗电,注意电量
如果你还想让显示器也永不关闭,去系统设置 → 锁定屏幕 → 不活跃时关闭显示器调一下
参考
Use caffeinate to prevent sleep on lid close on battery - Ask Different
macOS 在任何情况下都不要自动进入睡眠模式 - CSDN
How to stop Mac from sleeping: Built-in settings & Easy tools - Setapp












