首页 > 解决方案 > 如何防止 Mac OS 上长时间运行的 bash 脚本中的空闲睡眠?

问题描述

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

标签: bashmacossleep-mode

解决方案


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

caffeinate -i -w $$ &

这个怎么运作:

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

推荐阅读