我有一个通过启动启动的守护进程。即使在DarkWake期间,它也将运行,并且没有时间在OS X重新进入休眠之前完成。
我可以想到以下解决方案,但没有找到实现此目的的方法。
我浏览了Apple文档和论坛,但没有找到任何引用。
尝试在守护进程中调用pmset noidle和caffeinate。没用OS X进入休眠状态。在DarkWake模式下,OS X似乎抑制了许多通知的传递。
没有找到任何解决方案/方法来检测DarkWake模式。
请帮忙。
最佳答案
只需要找出这些唤醒。
使用log
实用程序,我可以在系统自行唤醒时看到这些行(即使未激活powernap):
2019-04-11 22:18:00.622600 + 0200 0x250默认0x0 83 0 powerd:[powerd:sleepWake] vm.darkwake_mode:1-> 1
2019-04-11 22:18:00.625413 + 0200 0x250默认0x0 83 0通电:[powerd:sleepWake]由于RTC/维护原因,Deep Wake从Deep Idle [CDN]唤醒:
为了检测到这一点,应该执行以下操作:
log show --last 1m --predicate 'subsystem == "powerd"' | grep "DarkWake from Deep Idle"
另外,在脚本中使用caffeinate也可能有效(尚未对此进行测试)。