Come dice il titolo, ho creato un agente di avvio on-demand che ascolta socket e viene avviato alla connessione in ingresso. Funziona bene e dopo che ha fatto il suo lavoro, voglio uscirne. Dopo aver chiuso il sistema automaticamente lo riavvia, il sistema operativo probabilmente pensa che sia morto per errore. Come posso fermare questo comportamento? Il mio launch agent è un'applicazione Cocoa (senza GUI), ho provato a uscire con 'exit (EXIT_SUCCESS)' e '[[NSApplication sharedApplication] termina: self]'
Il mio launchd plist è qui sotto:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.mycompany.mylaunchagent</string>
<key>ProgramArguments</key>
<array>
<string>/Library/Application Support/com.mycompany.myproduct/myproduct.app/Contents/MacOS/myproduct</string>
</array>
<key>ServiceIPC</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>Sockets</key>
<dict>
<key>MyListenerSocket</key>
<dict>
<key>SockServiceName</key>
<string>12040</string>
</dict>
</dict>