3

launchdMac OS X、特にファイルのセクションのNetworkState( bool) キーについて詳しい人はいますか?KeepAlive.plist

plist が次のように構成されている場合、Mac にネットワーク接続がない場合、manページから実行可能ファイルを呼び出す必要があります。launchd

...
<key>KeepAlive</key>
<dict>
    <key>NetworkState</key>
    <false/>
</dict>
...

これは問題なく動作するように見えますが、有効なネットワーク接続が確立されると (Mac が少なくとも 1 つの非ループバック IPv4/6 アドレスを持つと定義されます)、実行可能ファイルの呼び出しを停止するlaunchd 必要NetworkStateがあります (フラグがそれを防止するため)。

しかし、私が見ている動作は、Mac のネットワーク接続に関係なくlaunchd、私のプログラムを呼び出し続けることです! フラグを完全に無視しているかのようです。launchdNetworkState

launchdネットワーク接続がないときにのみプログラムを呼び出し、ネットワーク接続が確立されると呼び出しを停止するように、これを機能させる方法を知っている人はいますか?

4

1 に答える 1

6

私はしばらくの間、この同じ問題に取り組もうとしてきましたが、今日、ようやく自分の誤解に気づきました。

キープアライブの条件のいずれかが true と評価された場合、それは「このプロセスが実行されていることを確認する」ことを意味します。それらのいずれも true と評価されない場合、それは「このプロセスが実行されていることを確認しない」ことを意味し、私が望んでいた「このプロセスが実行されていないことを確認しない」ことを意味します。

于 2012-08-02T22:29:14.923 に答える