阻止 Mac 休眠

更新于 · 作者

一个漫长的下载、一次渲染、一次构建、一场接着外接显示器的通话。Mac 完全不知道这些事要紧,偏偏在中途就把屏幕调暗了。hop 让它醒着,醒多久由你说了算;你一做完,睡眠就还回去。

macOS 菜单栏中的 hop 面板:keep awake
keep awake in hop at a glance
what it iskeep awake inside hop, a menu bar app for macOS
pricefree — no trial, no pro tier, no account
licenceMIT, source on GitHub
requiresmacOS 14 or later, Apple silicon or Intel
works offlineyes
data sent anywherenone
download hopfree · macOS 14+ · Apple silicon and Intel

什么时候不能让 Mac 睡着

  • 得在没人看着的时候跑完的下载或上传
  • 你并不守在旁边的渲染、构建,或者一次长时间导出
  • 演示的时候——当着一屋子人把屏幕调暗,是另一种折磨
  • 在外接显示器上看片,笔记本的盖子是合着的
  • 任何走 ssh 的活儿,机器一打盹它就断了

不让 Mac 睡着的那些免费办法

这不是一道收费对免费的题,装作是就不老实了。有好几个免费应用只干这一件事,而且干得不错,macOS 自己也带了一条命令。麻烦在于它们按住的东西并不一样,而人们正是卡在这些差别上。

你真正需要的是 caffeinate 的哪个参数

`caffeinate` 就在 /usr/bin/caffeinate,不用装。什么参数都不带地跑,它只挡住闲置休眠,别的都不管。`-d` 按住屏幕,`-i` 按住闲置休眠,`-m` 按住磁盘,`-s` 按住系统休眠——可 `-s` 只在接着电源时有效,用电池的时候它一声不响地什么也不做。

`-t` 收的是秒数,不是分钟;而且只要你顺手交给 caffeinate 一个程序去跑,它就被整个忽略。大多数人想要、却从来没找到的那个参数是 `-w <pid>`:它一直按住,直到那个 pid 的进程结束为止——对于一件事先并不知道要跑多久的活儿,这才是诚实的办法。

它们都做不到的一件事,是熬过合上的盖子。caffeinate 求的是 macOS 别自己打盹,而合上盖子并不算自己打盹。

那个没写进文档、又会赖着不走的 pmset 开关

还有一个开关,这个问题反复被问起正是因为它:`sudo pmset -a disablesleep 1`。它确实能在盖子合上、又没有外接显示器的时候让 Mac 醒着——而这正是 macOS 平时一口回绝的那种情况。

它同时在两头都没有文档。`man pmset` 里压根没有 `disablesleep` 这个词,而 `pmset -g` 把它按另一个名字打回来——`SleepDisabled`,在最上面那段「System-wide power settings」里。你写进去的和你读出来的拼法不一样,两个又都不在手册里。在 macOS 26.6.2 上验证过。

这不是某一个人读漏了。关于 pmset 最详尽的一篇公开梳理把设置项一条条走了一遍,同样没有列出这个参数(英文页面)。 The Eclectic Light Company — power management in detail

而且它赖着不走。重启之后它还在,只能手动用 `sudo pmset -a disablesleep 0` 撤掉。为一个晚上设上,然后忘掉,你的 Mac 就再也不睡了——包括它合着盖子待在包里的那些时间。

免费这条路要你付出什么

坐在桌前,一件跑一小时的活儿,`caffeinate -t 3600` 就够了。你菜单栏里已经有的那个免费的一键小应用也一样够。单就「让 Mac 不睡」这一项能力而言,这些和 hop 没有好坏之分,不值得为它换工具。

要付的代价在另外两处。第一处是你动手之前得先知道的那些事:哪个参数按住哪一种休眠、其中一个在电池上是死的、超时按秒计、这些没有一个管得了合上的盖子——而真管得了的那个开关又不在手册里。第二处是,免费这条路上没有任何东西自带一个结束。caffeinate 在窗口关掉或进程结束时停下;pmset 那个开关在你想起来的时候停下。它们谁都听不懂「按住两小时,然后放手」。

hop 这边是怎么做的

一次点击,不用密码,时长你挑:十五分钟、八小时,或者一直到你关掉为止。这期间屏幕可以亮着,也可以暗下去而机器照跑,菜单栏会告诉你现在是哪一种——于是在一次漫长的上传中途,「它还按着吗」这个问题根本不会冒出来。

时长在哪里设、合盖模式需要什么、图标怎么看——手册那一侧,中文的: 说明书里的防休眠

没有要翻的设置面板,事后也没有什么要撤销。你的节能设置一点没动:hop 开着的时候按住 Mac,不开的时候就让开。

重点就在那个时长,这和隔壁那个计时器是同一个想法:你说多久,它自己结束。 Mac 上的计时器

你在做什么免费的办法用 hop
一个下载,而你就在桌前看着caffeinate -i,开着那扇终端窗口别关用不上——用那条命令就行
一次总会结束的构建,而你没在看着caffeinate -w <pid>,前提是你知道 pid设八小时,然后走开
就按住二十分钟caffeinate -t 1200——是秒,不是分钟在面板里挑时长
盖子必须合上,又没有外接显示器sudo pmset -a disablesleep 1,不手动撤就一直赖着把合盖模式打开,它管的是同一种情况
做完了,想让 Mac 恢复正常手动撤掉那个开关,否则它连重启都熬得过去退出 hop,正常的休眠就回来了
download hopfree · macOS 14+ · Apple silicon and Intel

盖子可以合着

macOS 只在自己的条件下合着盖子运行。Apple 把这些条件列了出来:Mac 接着电源、接着外接显示器,还要有外接键盘和鼠标或触控板。不满足这些条件,合上盖子就等于睡眠,正在跑的一切也跟着停(英文页面)。 Apple 支持 — 合盖使用外接显示器

防休眠开着,盖子就不再说了算。屏幕暗下去,机器照样干活:下载跑完,片子接着放,构建走到结束。

一句提醒。合着盖子还醒着的 Mac 照样发热,而合上的笔记本待在包里,热没地方去。让它在桌上醒着,别在背包里。

它醒着的这段时间机器在干什么——功耗、温度、这一夜花掉了多少电——在同一个面板里就看得到。 Mac 的系统监控

另外,一台醒着又没人看管的 Mac,是谁都能上去敲字的 Mac。 键盘锁定

它自己会把睡眠还回来

这一类应用出毛病的方式都一样:忘了关。一台永远不睡的 Mac 费电、发烫,迟早会让你吃一惊。

所以防休眠会自己结束:时长走完,或者你退出 hop。不会有什么状态留下来,活得比应用还久。

如果 Mac 在你没要求的时候睡下或醒来,先从 Apple 自己那份原因清单看起(英文页面)。 Apple 支持 — 如果 Mac 意外睡眠或唤醒

什么都不会被送去别处

hop 没有账户,没有配置档案,也没有遥测。让 Mac 醒着是一次本地的系统调用,这件事的任何部分都不会离开这台机器。

frequently asked questions

它是让屏幕一直亮着,还是只让 Mac 醒着?
你说了算。默认是 Mac 醒着而屏幕可以暗下去——盖子合上或者跑着长任务的时候,要的正是这个。想让屏幕也亮着,有一个「屏幕常亮」的开关。
合着盖子的时候 caffeinate 能让 Mac 醒着吗?
不能。caffeinate 求的是 macOS 别自己打盹,合上盖子是另一回事。不满足合盖运行的条件——接电源、接外接显示器、有外接键盘或鼠标——盖子一合 Mac 就睡,有没有 caffeinate 都一样。
sudo pmset disablesleep 怎么撤销?
`sudo pmset -a disablesleep 0`。用 `pmset -g` 查:它显示在最上面,名字是 SleepDisabled,而不是你设它时用的那个。它熬得过重启,不会自己消失。
它会改我的节能设置吗?
不会。「系统设置」里什么都没动。防休眠开着的时候 hop 按住 Mac,一关掉就立刻松手。
如果我忘了关会怎么样?
设一个时长,它自己会结束。退出 hop 也会马上把正常的休眠还回来。
电量低的时候 Mac 还会睡吗?
macOS 自己的保护还在。防休眠请系统别因为闲置而睡,它不会盖过低电量时的行为。
真的免费吗?
完全免费。没有试用期,没有专业版,没有什么要解锁——另外十八件工具也一并给你。

other tools in hop

  • color pickerany pixel on screen, in hex, rgb and hsl at once.
  • file converterimages, video, audio and documents. offline, with the size shown up front.
  • time trackerwhere the hours went, kept on this Mac and nowhere else.

关于作者

hop 的作者 Anton Shakirov

开发 hop

开发 hop,也编写本站的每一页。十九个工具收在一个菜单栏图标下,MIT 许可,源码公开。issue 和邮件都由他本人阅读和回复。

download hopfree · macOS 14+ · Apple silicon and Intel