Macos 没有网络连接时启动NetworkState

Macos 没有网络连接时启动NetworkState,macos,plist,launchd,keep-alive,network-state,Macos,Plist,Launchd,Keep Alive,Network State,熟悉Mac OS X上的launchd的人,特别是NetworkState(bool)的KeepAlive部分的.plist文件 在man页面中,launchd应在Mac上没有网络连接时调用可执行文件,plist的配置如下: ... <key>KeepAlive</key> <dict> <key>NetworkState</key> <false/> </dict> ... 。。。 持久连接

熟悉Mac OS X上的
launchd
的人,特别是
NetworkState
bool
)的
KeepAlive
部分的
.plist
文件

man
页面中,
launchd
应在Mac上没有网络连接时调用可执行文件,plist的配置如下:

...
<key>KeepAlive</key>
<dict>
    <key>NetworkState</key>
    <false/>
</dict>
...
。。。
持久连接
网络状态
...
这似乎可以正常工作,但是,一旦建立了有效的网络连接(定义为至少有一个非环回IPv4/6地址的Mac),
launchd
应该停止调用可执行文件(因为
NetworkState
标志应该阻止它)

不过,我看到的行为是,
launchd
无论Mac的网络连接如何,都会不断调用我的程序!这就好像
launchd
完全忽略了
NetworkState
标志


有没有人知道如何做到这一点,使得
launchd
只在没有网络连接的情况下调用程序,而在建立网络连接后停止调用程序?

我一直在尝试解决同样的问题,今天我终于意识到我的误解


当KeepAlive的任何条件的计算结果为true时,这意味着“确保此进程正在运行”。当没有一个条件的计算结果为true时,这意味着“不确保此进程正在运行”,而不是像我希望的那样,“确保此进程未在运行。”

真的吗?没有什么?风滚草?难道没有其他人想做这样的事吗?这里不只你一个人。我也一直在玩这个,没能让它像预期的那样工作。这方面的内容似乎不多,但根据您希望做什么,请查看()。该plist监视目录以检测网络更改。这可能有帮助。我创建了一个plist,在NetworkState为false时每10秒连接一次我的wifi,因为我的Mac每晚都会断开连接,但即使它重新连接,并且我假设NetworkState为true,它仍然每10秒重新连接一次,使互联网无法使用。它没有像我想的那样起作用。