所有文章

如何在大拷贝期间防止 Mac 进入睡眠

· 阅读约 6 分钟

往外置硬盘或 NAS 拷贝大量文件,一个小时并不少见。如果你走开了,macOS 可能会认为 Mac 处于闲置状态,在拷贝进行到一半时让它进入睡眠。睡眠中的 Mac 什么也不会拷贝。

**简短的回答:**在拷贝进行的这段时间里,让 Mac 保持唤醒,仅此而已。有三种做法:在终端里用 caffeinate 命令手动处理;修改接通电源时的睡眠设置;或者使用一款在拷贝时主动告诉 macOS 自己正在工作的文件管理器。下面从最手动到最自动依次介绍。

为什么 Mac 睡眠时大拷贝会停下来

macOS 从你最后一次按键、点按或移动触控板开始计算闲置时间。超过“系统设置”中设定的时间后,屏幕会关闭,随后 Mac 就可以进入睡眠。文件拷贝不算这种意义上的“活动”:如果负责拷贝的 App 没有明确要求 macOS 保持唤醒,睡眠就可能在拷贝中途开始。

睡眠时,正在运行的程序会被暂停。两块本地磁盘之间的拷贝会停在原处,直到你唤醒 Mac,所以你回来时它仍然没有完成。拷贝到服务器或 NAS 的情况更糟:网络连接往往撑不过睡眠,拷贝可能以出错告终。

查看是什么让 Mac 保持唤醒

打开终端,输入:

pmset -g assertions

列表会显示每一个保持唤醒的请求(macOS 称之为“断言”,assertion)以及发出请求的进程。PreventUserIdleSystemSleep 表示“不因闲置让 Mac 睡眠”,PreventUserIdleDisplaySleep 表示“保持屏幕开启”。在“活动监视器”的“能耗”标签页中,也有一列显示哪些 App 正在阻止睡眠。如果列表里没有任何一项属于你的拷贝,Mac 随时可能睡着。

方法一:在终端中使用 caffeinate 命令

caffeinate 是 macOS 自带的命令。它会创建同一类断言,并在运行期间一直保持:

  • caffeinate -i 阻止因闲置而睡眠,直到你在该终端窗口中按下 ⌃ C。
  • caffeinate -i -t 7200 效果相同,持续 7200 秒(两小时),然后解除。
  • caffeinate -d 还会让屏幕保持开启;caffeinate -s 只在 Mac 接通电源适配器时阻止睡眠。
  • caffeinate -i ditto ~/Movies/Project "/Volumes/Travel SSD/Project" 直接执行拷贝,在拷贝完成前让 Mac 保持唤醒,完成后再解除。

最后一种写法最干净:不用估算时长。缺点是你得记得运行它,保持该终端窗口打开,并且要用命令行而不是“访达”来拷贝。

方法二:修改睡眠设置

如果不想碰终端,也可以让 Mac 在接通电源时不自动睡眠:

  • MacBook:“系统设置”›“电池”›“选项…”中,防止在接通电源适配器且屏幕关闭时自动睡眠的那一项。
  • 台式 Mac:“系统设置”中与能源相关的部分,防止在屏幕关闭时自动睡眠的那一项。
  • 屏幕:“系统设置”›“锁定屏幕”决定使用电池和接通电源时屏幕多久后关闭。

不同版本的 macOS 中,确切的名称略有不同。缺点是这项更改是永久的:在你改回来之前,Mac 每天夜里都会保持唤醒,而不只是在拷贝期间。而且用电池时,MacBook 仍会按自己的设置进入睡眠。

方法三:一款能自己让 Mac 保持唤醒的文件管理器

最省心的办法,是让负责拷贝的 App 在工作期间、也只在工作期间让 Mac 保持唤醒。Amphetamine 之类的小工具可以按需做到这一点;Folia Files 则会为自己的操作自动这样做。

Folia Files 中的两个面板:左边是“影片”文件夹,右边是外置磁盘,准备进行一次大拷贝

拷贝、备份和导入期间自动保持唤醒

只要 Folia Files 中有操作在进行(拷贝或移动、备份、存储卡导入、同步),App 就会请求 macOS 不要因闲置而睡眠。屏幕仍然可以关闭,这样更省电;拷贝在后台继续进行。最后一个操作结束后,请求随即解除,Mac 恢复平常的睡眠设置。在 pmset -g assertions 中,它显示为“Folia Files:正在进行操作”。

此功能默认开启。要确认,请打开 Folia Files ›“设置…”(⌘ ,)›“文件与网络”:在 “副本” 部分,开关名为 “拷贝、备份和导入期间让 Mac 保持唤醒”。

Folia Files 的设置,“文件与网络”页面:“副本”部分中让 Mac 在拷贝、备份和导入期间保持唤醒的开关

它的正上方还有一个实用的搭档:“自动继续因网络中断或磁盘断开而中断的拷贝”。如果拷贝仍被打断(NAS 掉线、线缆被拔出),Folia Files 会等待宗卷回来,从中断的地方继续,而不是从头再来。

从菜单栏按需开启

有时需要保持唤醒的不只是拷贝:一次很长的下载、一次渲染、一场演示。菜单栏中的 Folia Files 项目提供 “让 Mac 保持唤醒”,可选 “30 分钟”、“1 小时”、“2 小时”、“4 小时” 和 “直到我停止”。这种方式也会让屏幕保持开启。

启用期间,菜单会显示 “Mac 保持唤醒” 和剩余时间;点按它即可让 Mac 重新可以睡眠。如果是某个操作让 Mac 保持唤醒,菜单会注明:“在当前操作完成前保持唤醒”。菜单栏项目默认显示;如果你隐藏了它,可以在“设置”›“菜单栏”中用 “在菜单栏中显示 Folia Files” 让它回来。

网站版与 App Store 版

两个版本中,保持唤醒的功能完全相同:macOS 允许任何 App(无论是否在沙盒中)无需特别权限就发出这个请求。在 App Store 版中,同步需要免费的 Folia Files Companion;拷贝、移动、备份和存储卡导入则不需要。

任何 App 都无法阻止的:合上盖子

合上 MacBook 的盖子就会让它睡眠,无论 caffeinate 或任何 App 怎么说。例外是合盖模式:Mac 接通电源适配器,并连接了外接显示器、键盘以及鼠标或触控板。没有这样的配置时,请让盖子开着。屏幕可以自行关闭,拷贝会继续进行。

大拷贝前的检查清单

  • 给 MacBook 接上电源:用电池时睡眠设置更严格,长时间拷贝也会耗尽电量。
  • 让盖子开着,除非你在使用外接显示器。
  • 在能让 Mac 保持唤醒的 App 中开始拷贝,或在命令前加上 caffeinate -i。
  • 不确定?运行 pmset -g assertions,看看你的拷贝是否在列。
  • 拷贝完成后,正确推出磁盘。如果 macOS 提示它仍在使用中,请看如何推出“正在使用”的磁盘。