如何防止 Mac OS 上长时间运行的 bash 脚本出现空闲睡眠?

aug*_*rar 8 macos bash sleep-mode

我有一个 bash 脚本,可以在 Mac OS 上执行多个长时间运行的命令。如何防止计算机在脚本运行时进入睡眠状态?

aug*_*rar 19

我发现通过将此行添加到脚本的开头可以实现所需的行为:

caffeinate -i -w $$ &
Run Code Online (Sandbox Code Playgroud)

怎么运行的:

  • caffeinate是一个内置的 Mac OS 实用程序,用于创建电源管理断言以防止睡眠。
    • -i标志告诉我们caffeinate要防止空闲睡眠。
    • -w标志告诉caffeinate您等待指定的进程完成。
    • $$是包含当前 PID 的 shell 变量。该标志与-w该标志一起指示caffeinate在 shell 脚本运行期间防止睡眠。
  • 最后一个&在后台运行该命令,以便脚本可以继续运行。