Eri*_*ker 3 macos launchd keep-alive plist network-state
任何熟悉launchdMac OS X的人,特别是文件部分的NetworkState(bool)键?KeepAlive.plist
在man页面launchd上,当Mac上没有网络连接时,应该调用可执行文件,当plist配置如下:
...
<key>KeepAlive</key>
<dict>
<key>NetworkState</key>
<false/>
</dict>
...
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常,但是,一旦建立了有效的网络连接(定义为具有至少一个非环回IPv4/6地址的Mac),就launchd 应该停止调用可执行文件(因为该NetworkState标志应该阻止它).
不过,我看到的行为是,无论 Mac的网络连接如何,都会launchd一直调用我的程序!这好像完全无视旗帜.launchdNetworkState
有没有人知道如何使这项工作launchd只在没有网络连接时调用程序,并在建立网络连接后停止调用它?
我一直试图解决同样的问题,今天我终于意识到了我的误解.
当KeepAlive的任何条件评估为true时,这意味着"确保此进程正在运行".当它们都没有评估为真时,这意味着" 不确保这个过程正在运行",而不是像我希望的那样,"确保这个过程没有运行."
| 归档时间: |
|
| 查看次数: |
2831 次 |
| 最近记录: |