永久に実行され、システムが起動するとすぐに開始されるlaunchdデーモンがあるため、そのplistで次のように述べています。
<key>KeepAlive</key>
<true/>
システムがシャットダウンされるまで、すべて問題ありません。エージェントは、システムがシャットダウンされていることを HTTP 経由でリモート サーバーに通知する必要があります。システムは SIGTERM をエージェントに問題なく送信し、エージェントはそれを処理できます。ただし、SIGTERM を受信するまでに、DNS (またはおそらくネットワーク サブシステム全体) は既にダウンしており、名前を解決できないため、サーバーにステータスを送信できません。すべてのネットワーク機能が失敗しているため、ネットワークがダウンしていると思われます。Linux では、これは NN=99 および MM=00 の SNN/KMM シンボリック リンクによって解決されます。ただし、OSX では、launchd デーモンには優先順位がないことが明示的に示されています。では、OSX が DNS/ネットワーキングをシャットダウンする前に、SIGTERM をデーモンに送信するにはどうすればよいでしょうか?
プログラムは電源モードの変更(つまり、スリープ)をリッスンするように登録できるため、システムシャットダウンイベントのリスナーを登録する機能をすぐに調べましたが、これも不可能であるとの情報源がいくつかありました-電源通知の受信(特にシャットダウン) Mac OSXで。