【发布时间】:2020-12-02 12:21:44
【问题描述】:
我正在使用launchctl 作为代理运行 JXA 脚本。脚本的主要逻辑应该以 2 秒的间隔运行,这是我使用无限循环和delay 实现的。但是,每当我的 macbook 进入睡眠状态时,脚本就会停止执行,我必须再次手动卸载和加载代理。
我的脚本:
for(;;) {
// (Open browser and check whether a tab exisits or not)
<APPLICATION LOGIC >
delay(2);
}
我可以做些什么来确保这个脚本在我的 macbook 唤醒后继续运行吗?
【问题讨论】:
-
扔掉那个脚本。即使您的 MacBook 处于唤醒状态,您也不希望它运行,更不用说当它试图入睡时。 不要在无限循环中运行东西。使用带有
on idle处理程序的 AppleScript 保持打开 应用程序,或者更好的是,使用launchd运行脚本,这将处理重复执行脚本正确。 (* smh *) -
谢谢。已删除无限循环,现在我按照建议使用
launchctl管理脚本的执行。如果有人想学习如何使用launchd每 N 秒执行一次脚本,请参考以下文章:Run a script every 5 mins on a Mac
标签: applescript javascript-automation