我让我的 Mac 在夜间醒来并运行 rsync 来备份它。这是通过节能器 > 计划配置的。
然而,它似乎在完成任何事情之前会重新进入睡眠状态,所以我需要在 rsync 运行的 bash 脚本的执行过程中停止它进入睡眠状态。
我认为最好的方法(如果可能的话)是发出一个命令,在 rsyncs 之前将睡眠超时设置为“从不”或很长的超时,然后在完成后恢复正常。有没有更好的解决方案来做到这一点?
Nat*_*ong 21
例如:
caffeinate -i rsync -avz someuser@somehost:somefolder /some/local/folder
Run Code Online (Sandbox Code Playgroud)
从手册页:
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.
Run Code Online (Sandbox Code Playgroud)
详情请参阅man caffeinate。
ben*_*ado 11
使用caffeinate命令。请参阅Nathan Long 的回答或man caffeinate了解详情。
它隐藏在手册页中,但pmset有一个非常简单的模式来防止睡眠。如果您执行该命令,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
Run Code Online (Sandbox Code Playgroud)
这比使用 pmset 更改您的睡眠设置要好,这需要 root 访问权限和(假设您想成为一个好公民)某种检测当前设置并在您完成后将它们更改回来的方法。
| 归档时间: |
|
| 查看次数: |
14563 次 |
| 最近记录: |