语境
我正在为 macOS 开发一项服务,该服务在后台运行并定期执行某些任务。该服务launchd
在崩溃或自动更新时会自动重新启动。
我注意到当机器处于睡眠状态时,它仍会在每小时 1 或 2 分钟内执行程序。
客观的
我的目标是在主机处于睡眠状态时中断这些任务的执行。为此,我正在处理系统发送应用程序的睡眠和唤醒通知(Apple Docs:注册和注销睡眠和唤醒通知)。
问题
我发现的问题是,如果服务更新或在系统处于睡眠状态时重新启动,则服务启动并假定状态为“唤醒”。因此它试图运行它不应该运行的东西。
我想知道是否有办法查询系统是否处于“睡眠”或“清醒”状态。