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

2024-03-11

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

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

  1. 不要让该守护进程在 DarkWake 期间运行。

    我浏览了苹果文档和论坛,但没有找到任何相关参考。

  2. 在 DarkWake 期间,通过守护进程进程让操作系统等待其完成。

    尝试在守护进程中调用 pmset noidle 和 caffeinate 。它不起作用。 OS X 进入睡眠状态。在 DarkWake 模式下,OS X 似乎会抑制许多通知的发送。

  3. 在守护进程中检测 DarkWake 模式。

    没有找到任何解决方案/方法来检测 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/维护而从深度空闲 [CDN] 进行 DarkWake:

为了检测到这一点,类似这样的事情应该起作用:

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在 OSX 中检测 Power Nap / DarkWake 模式 的相关文章

随机推荐