el agente de lanzamiento a petición se reinicia automáticamente

0

Como dice el título, he creado un agente de lanzamiento a pedido que escucha el socket y se inicia en la conexión entrante. Funciona bien y después de que haya terminado su trabajo, quiero dejarlo. Después de salir del sistema, el sistema se 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 lista de lanzamiento está debajo:

<?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>

    
pregunta superg 03.07.2013 - 12:07

1 respuesta

1

Probablemente no ayude, pero puedes intentar dormir unos segundos antes de salir. Desde Guía de programación de demonios y servicios :

  

Importante : si su daemon se apaga demasiado rápido después de ser lanzado, launchd puede pensar que se ha estrellado. Los demonios que continúan con este comportamiento pueden suspenderse y no volver a iniciarse cuando lleguen las solicitudes futuras. Para evitar este comportamiento, no apague durante al menos 10 segundos después del lanzamiento.

    
respondido por el user495470 03.07.2013 - 12:53

Lea otras preguntas en las etiquetas