是否可以在OSX中检测Power Nap / DarkWake模式

问题描述 投票:5回答:1

我有一个通过launchd启动的守护进程。即使在DarkWake期间也会运行,并且在OS X重新进入睡眠状态之前没有时间完成。

我可以想到以下解决方案,但没有找到实现这一目标的方法。

  1. 不要在DarkWake期间运行此守护程序进程。 我浏览了Apple文档和论坛,但没有找到任何参考。
  2. 在DarkWake期间,通过守护进程使操作系统等待直至完成。 尝试在守护进程中调用pmset noidle和caffeinate。它没用。 OS X进入睡眠状态。在DarkWake模式下,OS X似乎禁止传递许多通知。
  3. 在守护程序进程中检测DarkWake模式。 没有找到任何解决方案/方法来检测DarkWake模式。

请帮忙。

macos launchd power-management
1个回答
0
投票

只需要了解这些醒来。使用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:[powerd:sleepWake]由于RTC /维护,来自深度空闲[CDN]的DarkWake:

为了检测到这一点,这样的事情应该有效:

log show --last 1m --predicate 'subsystem == "powerd"' | grep "DarkWake from Deep Idle"

或者,在脚本中使用咖啡因也可能有效(尚未对此进行测试)。

© www.soinside.com 2019 - 2024. All rights reserved.