【发布时间】:2019-07-13 15:01:13
【问题描述】:
如何安排脚本作业 - 大约每小时一次...
但我希望即使计算机处于睡眠状态也能运行它。
理想情况下也注销 - 但不是大问题。
谢谢。
【问题讨论】:
如何安排脚本作业 - 大约每小时一次...
但我希望即使计算机处于睡眠状态也能运行它。
理想情况下也注销 - 但不是大问题。
谢谢。
【问题讨论】:
您的问题有几个问题:
1) 您不应使用 cron,而应使用 launchd 或可用的调度程序应用程序之一。
2) 如果您想在用户注销的情况下运行脚本,您需要以 root 身份运行或使用privileged helper。
3) 此外,在计算机处于睡眠状态时让它运行是普通调度程序应用程序无法实现的。为此,您必须有权访问 Apple 尚未导出供开发人员使用的 API,即在 Power Nap 期间运行代码的能力。 AFAIK,只有某些 Apple 应用程序能够在 Power Nap 上运行。运行此类脚本的唯一方法是在计算机再次开机时。您可以通过注册唤醒通知来做到这一点:
func applicationDidFinishLaunching(_ aNotification: Notification) {
NSWorkspace.shared.notificationCenter.addObserver(self, selector: #selector(sleepListener(_:)),name: NSWorkspace.didWakeNotification, object: nil)
}
@objc private func sleepListener(_ aNotification: Notification) {
// your code here
}
【讨论】: