Mac 不睡眠怎么办,怎么查是谁在阻止
Mac 不肯睡眠时,一条命令通常就能查到原因,在终端运行 pmset -g assertions,找 PreventUserIdleSystemSleep 或 PreventSystemSleep 这几行,每一行都写着是哪个进程让 Mac 醒着。多数情况是正在放媒体的 App、远程控制工具、防休眠工具或者下载任务,退出它,Mac 就会自己正常睡眠。
找到是谁不让它睡
先看最快的答案,这条告诉你哪些进程在阻止睡眠:
pmset -g | grep -E '^ *sleep'
比如这台 Mac 输出的是 sleep 1 (sleep prevented by caffeinate, powerd, Amphetamine, ...)。想看细节,包括每个进程占了多久:
pmset -g assertions
同一台 Mac 上的真实一行:
pid 1321(UURemote): 36:07:42 PreventUserIdleSystemSleep named: "UURemote Disable Idle System Sleep"
手册页(man pmset)说这些断言“may prevent system sleep or display sleep”,也就是可能阻止系统或显示器睡眠,主要看这几个:
| 断言 | 拦住什么 | 通常是谁 |
|---|---|---|
PreventUserIdleSystemSleep |
闲置时进入睡眠 | 媒体播放、下载、远程控制、防休眠工具 |
PreventUserIdleDisplaySleep |
闲置时关显示器 | 视频、演示、防休眠工具 |
PreventSystemSleep |
范围更大的睡眠 | 系统任务或者主动要求的工具 |
UserIsActive |
短时间内的闲置计时 | 你刚碰过键盘或触控板 |
这些大多只拦闲置睡眠,所以从苹果菜单选“睡眠”通常还是有效的,如果也不行,接着往下看。
逐个排查常见原因
| 进程或迹象 | 原因 | 怎么办 |
|---|---|---|
coreaudiod |
音频开着,有时是暂停的标签页 | 关掉标签页或播放器 |
| 浏览器或视频 App | 正在放视频 | 停掉或者关掉页面 |
caffeinate、Amphetamine 这类工具 |
它们就是用来防休眠的 | 退出,或者结束这次防休眠 |
| UU 远程、屏幕共享或其他远程工具 | 要让 Mac 保持可连接 | 断开或退出 |
备份和同步 App、bird |
有任务在跑 | 等它完成或者暂停 |
powerd |
它自己的记录,常见于显示器亮着时 | 先看其他几行 |
pmset -g 里有 SleepDisabled 1 |
整台 Mac 的睡眠被关了 | 看下面一节 |
设置也有影响,打开“系统设置 › 电池 › 选项”,看“使用电源适配器供电且显示器关闭时,防止自动进入睡眠”,同一页的“唤醒以供网络访问”决定 Mac 是否会为了共享资源醒来。如果刚睡下不久就醒,常见的嫌疑是外接设备,拔掉 USB 设备和扩展坞再试。
睡眠被彻底关掉时
pmset -g 会列出 SleepDisabled 这一行,值是 1 时 Mac 不会睡眠,从菜单选或者合盖都不行。防休眠工具为了合盖不睡会设置它,停下来时应该改回去,先退出这些工具,如果还是 1,也确实没有东西需要它:
sudo pmset -a disablesleep 0
不确定是哪个工具设置的,就重启一下。
合盖了还在运行
笔记本接着外接显示器、电源和键盘或鼠标时可以合盖运行,这是合盖模式,是有意设计的,拔掉显示器就能测试。如果 MacBook 放在包里还发热,不要继续放着,打开它,运行上面的命令找到进程,有些工具就是故意让 Mac 合盖不睡。
不要这样做
- 不要一上来就重置 SMC 或 NVRAM,几乎都是某个进程在运行,上面的命令几秒就能查到。
- 不要照论坛乱改
pmset,这些改动重启后还在,很容易忘,pmset -g custom能看现在的设置,sudo pmset restoredefaults可以恢复默认。 - 不要为了这个去删
sleepimage,让 Mac 醒着的不是这个文件。 - 不要不管包里发烫的 MacBook,先拿出来让它凉下来。
Mole 能做什么
在 Mole 的“状态”里,进程菜单的“为什么在运行?”读的就是这些断言,这个进程让 Mac 醒着时,它会写“进程正在阻止系统睡眠。”怀疑某个 App 时这样看很方便,想一次看全部,还是 pmset -g assertions 更快。Mole 自己的“保持常亮”也是一个有意持有断言的工具,默认模式也覆盖合盖,这时会用 disablesleep,结束时会改回去。想要的如果是相反的效果,可以看 不费电地让 Mac 保持唤醒,如果是电池过夜掉得快,可以看 MacBook 电池为什么掉得快。
常见问题
Mac 为什么不睡眠?
通常是有进程持有电源断言,比如媒体播放、远程控制工具或防休眠 App,pmset -g assertions 能查到名字。
怎么看是什么在阻止 Mac 睡眠?
在终端运行 pmset -g assertions,看 PreventUserIdleSystemSleep 和 PreventSystemSleep 这几行,上面写着每个进程的名字。
Mac 为什么刚睡下就醒?
常见的嫌疑是外接设备和网络唤醒,拔掉 USB 设备,再看“系统设置 › 电池 › 选项”里的“唤醒以供网络访问”。
coreaudiod 阻止睡眠是怎么回事?
有东西开着音频,常常是浏览器标签页或音乐 App,暂停了也算,关掉之后断言应该就没了。
SleepDisabled 是什么意思?
整台 Mac 的睡眠被关了,通常是防休眠工具设置的,先退出它,如果还是 1,运行 sudo pmset -a disablesleep 0。