Como dice el título he creado un agente de lanzamiento bajo demanda que escucha el socket y se lanza en la conexión entrante. Funciona bien y después de que ha hecho su trabajo quiero dejarlo. Después de salir el sistema lo reinicia automáticamente, el sistema operativo probablemente piensa que murió accidentalmente. ¿Cómo puedo detener este comportamiento? Mi agente de lanzamiento es una aplicación Cocoa (sin GUI), he intentado salir con 'exit(EXIT_SUCCESS)' y '[[NSApplication sharedApplication] terminate:self]'
Mi plist de launchd está abajo:
<?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>