咖啡因

咖啡因

我让 Mac 在夜间唤醒并运行 rsync 来备份。这可通过“节能器”>“计划”进行配置。

然而,它似乎在完成任何事情之前就又进入睡眠状态了,所以我需要在执行 rsync 运行的 bash 脚本期间停止它的睡眠状态。

我认为最好的方法(如果可能的话)是在 rsync 之前发出命令将睡眠超时设置为“从不”或非常长的超时,然后在完成后恢复正常。有没有更好的解决方案?

答案1

咖啡因

例如:

caffeinate -i rsync -avz someuser@somehost:somefolder /some/local/folder

从手册页中:

EXAMPLE
     caffeinate -i make
        caffeinate forks a process, execs "make" in it, and holds an
        assertion that prevents idle sleep as long as that process
        is running.

man caffeinate参阅详情。

答案2

Mac OS X 10.8 (Mountain Lion) 及更高版本

使用caffeinate命令。请参阅Nathan Long 的回答man caffeinate了解详情。

Mac OS X 10.7 (Lion) 及更早版本

它隐藏在手册页中,但是时间设置有一个非常简单的防止睡眠模式。如果你执行该命令,pmset noidle你的 Mac 将保持唤醒状态,直到该进程被终止。以下是在脚本中使用它的方法:

# launch process to prevent sleep and move it to the background
pmset noidle &
# save the process ID
PMSETPID=$!

... do stuff here ...
... don't fall asleep ...
... watch out for that tree!
... ok we're free and clear now ...

# kill pmset so the computer can sleep if it wants to
kill $PMSETPID

这比使用 pmset 来更改您的睡眠设置要好,因为后者需要 root 访问权限并且(假设您想成为一个好公民)需要某种方式检测当前设置并在完成后将其更改回来。

答案3

尝试

man pmset

:-)

相关内容