在 Mac OS X 中进程或命令处于活动状态时防止系统休眠

Anonim

许多 Mac 用户使用实用程序来暂时阻止他们的计算机进入休眠状态,通常依赖于睡眠角、名为 Caffeine、pmset 的第三方工具,或最近与 OS X 捆绑在一起的名为 caffeinate 的命令行实用程序。默认情况下,Caffeine 菜单项和 caffeinate 命令都会阻止睡眠,只要它们被单独激活,这对使用 Mac 的桌面用户非常有用,但如果您想拥有 OS X 睡眠功能则不是特别有用依赖于特定过程或任务的完成。

这就是我们要在这里使用命令行覆盖的内容,它具有依赖于进程的睡眠预防,仅在指定的命令、任务或进程正在运行时阻止 Mac 睡眠功能或active,那么结束后,电脑会恢复传统的睡眠习惯。

为了实现命令特定的睡眠避免,我们将使用 caffeinate 命令的变体,它可以通过多种方式防止睡眠。我们将运行几个示例,但 caffeinate 的手册页提供了一些额外的选项,这些选项在其他情况下也可能需要。

为了使睡眠预防依赖于特定命令或进程的完成,您将像这样使用-i 标志:

caffeinate -i

可能已经很明显了,但是像这样执行caffeinate命令也会启动参数中指定的命令或进程。

例如,如果您希望 Mac 在“make”命令处于活动状态时避免休眠,您可以使用以下命令语法:

caffeinate -i make

或者您可能只是想在与特定服务器的 ssh 连接处于活动状态时防止睡眠,并且您想将 caffeinate 命令发送到后台,然后您将在末尾应用一个符号作为好吧:

caffeinate -i ssh coffeebeans

You can even run this with your own scripts or commands at another location:

caffeinate -i /private/tmp/./whatisthis.sh

或者只要 Safari 网络浏览器在 GUI 中运行,就可以激活睡眠预防,您可以使用以下语法,注意您必须在 .app 文件中指定二进制文件的完整路径:

caffeinate -i /Applications/Safari.app/Resources/MacOS/Safari

-i 标志可防止系统休眠,但您也可以使用其他标志来创建断言以防止磁盘或显示器休眠。为了防止显示休眠(即屏幕关闭并进入锁定模式或屏幕保护程序),需要 -d 标志:

caffeinate -d

就像 -i 标志一样,它可以应用于任何系统任务,无论是从命令行还是 GUI 运行,只要确保指定正确的名称和正确的大小写即可。另一个例子:

caffeinate -d telnet towel.blinkenlights.nl

该命令意味着只要telnet 到星球大战ASCII 电影处于活动状态,Mac 显示器就不会休眠。如果 telnet 退出或星球大战结束播放,系统可能会像通常允许的那样进入睡眠状态,这由 OS X 中的睡眠和能量设置定义。

当然,由于caffeinate 完全基于命令行,因此它不会适用于所有用户,但对于那些在终端上花费大量时间的人来说,这可能是一个很棒的技巧。对于习惯于图形用户界面的 Mac 用户来说,有效的抗睡眠角落和使用 Caffeine 应用程序可能仍然是执行类似功能的最佳选择。

如果您想执行类似的依赖于进程的任务但避免使用终端和命令行,Wimoweh 应用程序可以完成与菜单栏下拉菜单相同的操作,尽管它是付费应用程序,可能使某些用户不太喜欢它,并且它不提供基于一般过程或命令行的任务完成参数。因此,带有适当标志的咖啡因仍然受到许多人的青睐。

在 Mac OS X 中进程或命令处于活动状态时防止系统休眠