运行 在 Mac 机器唤醒时运行

Run function when Mac machine wakes

我正在寻找一个函数,当 macOS 机器从睡眠中醒来时会被调用。

有哪些方法可以做到这一点?

我正在寻找 运行 计算机唤醒时我的 Swift 应用程序中的代码。发生这种情况时,我正在尝试打开一个新的 websocket。如果我打开盖子 -> new websocket,如果我按任意键 -> new websocket。

到目前为止,我发现有用的是 ,它源于 @Rob Napier 的建议 (didWakeNotification)

您需要提供比这更多的信息。这是一个用户级(GUI?)应用程序,当机器进入睡眠状态时将 运行 吗?这是一个守护进程吗?如果您的程序尚未 运行,您希望它启动吗?该程序是否已沙盒化?您希望获得 root 访问权限吗?如果没有人登录怎么办? "Wakes up from sleep" 有许多微妙的极端情况(例如,它包括一个 "dark wake" 模式,既不完全睡眠也不完全清醒)。

也就是说,高级答案是 "observe NSWorkspace.didWakeNotification",低级答案是 "call IORegisterForSystemPower." 但是,这两个答案是否对您有帮助在很大程度上取决于您要解决的问题。