【问题标题】:How to schedule a script job (macos)如何安排脚本作业(macos)
【发布时间】:2019-07-13 15:01:13
【问题描述】:

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

但我希望即使计算机处于睡眠状态也能运行它。

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

谢谢。

【问题讨论】:

    标签: macos cron


    【解决方案1】:

    您的问题有几个问题:

    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
    }  
    

    【讨论】:

    • 感谢您的回复...并不能帮助我解决问题 - 但至少我可以在其他地方寻找解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多