Mac机器唤醒时运行功能

时间:2017-10-25 22:29:06

标签: macos cocoa macos-sierra

我正在寻找一个当macOS机器从睡眠状态唤醒时会被调用的函数。

有哪些方法可以实现这一目标?

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

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

1 个答案:

答案 0 :(得分:3)

您需要提供比此更多的信息。这是一台用户级(GUI?)应用程序,它将在机器进入睡眠状态时运行吗?这是一个守护进程吗?您是否希望程序在尚未运行时启动?该程序是沙箱吗?你希望有root权限吗?如果没有人登录怎么办? “从睡眠中醒来”有许多微妙的角落情况(例如,它包括一个“黑暗唤醒”模式,它不是很好的睡眠而且没有完全唤醒)。

也就是说,高级答案是“观察NSWorkspace.didWakeNotification”,低级答案是“呼叫IORegisterForSystemPower”。但是,这些中的任何一个是否有助于你在很大程度上取决于你正在解决的问题。