如何安排脚本作业(macos)

时间:2019-06-27 02:02:19

标签: macos cron

我如何安排脚本作业-大约每小时一次...

但是我希望即使计算机处于睡眠状态也可以运行此程序。

理想情况下也注销-但不是大问题。

谢谢。

1 个答案:

答案 0 :(得分:0)

您的问题有几个问题:

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
}