我对此确实很苦恼。
基本上,我希望每 3 小时在我的 Mac 上运行一次 Python 脚本。即使我不在使用 Mac。因此,即使 Mac 处于睡眠状态,我也希望它能够被唤醒并运行脚本。
我的攻击方法如下:
我下载了一个名为“scenario”的第三方应用程序,它会在 Mac 唤醒时运行脚本。
我已经在场景中放置了一个将调用 Python 文件的 Apple 脚本。
Python 文件运行我需要它运行的几个命令,然后设置
pmset wake up call
当前时间后 3 小时的计划。
现在整个系统很笨重,而且是拼凑起来的。说实话,它工作得不太好,因为当我自己唤醒笔记本电脑时,代码就会执行,从而打乱计划。
一定有更好的方法。有人知道我可以在哪里找到/谁可以帮助我吗?
我已经查看过launchd
,但我不认为当笔记本电脑处于睡眠状态时会运行命令。
我目前的方法可以让笔记本电脑唤醒并在唤醒时执行代码,但我该如何解决上述问题呢?
答案1
我认为使用它pmset
来安排起床时间是个好主意。我认为还有其他一些工具(Caffeine?)可以帮助安排起床或睡眠时间,但我还是会坚持使用 pmset。
只需在 AppleScript 或 Python 脚本中添加一个条件来检查脚本上次运行的时间(基于日志条目或“触摸”文件),如果距离上次运行时间少于 3 小时,则退出脚本。
如果您在 3 小时之前唤醒 Mac,则需要一种方法来重置下一个脚本运行时间。但是,当您连续使用 Mac 超过 3 小时时,您必须已经解决了这个问题。
因此,我会将 Scenario 与 cron 结合起来运行相同的脚本,可能每分钟一次。相同的规则:脚本检查上次运行时间,如果运行时间太早则退出。所以现在有两种方法可以触发脚本:
- Mac 已睡眠 3 小时,pmset 将其唤醒
- Mac 已处于睡眠状态,您在 3 小时前将其唤醒
- Mac 醒了,距离上次检查已经过去了一分钟
在场景 1 中,您的脚本完全运行。在场景 2 中,它会检查并退出。在场景 3 中,它会检查并可能退出(太早)或完全运行。