0 votos

agente de lanzamiento a la carta que se reinicia automáticamente

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>

1voto

Probablemente no sirva de nada, pero podrías intentar dormir unos segundos antes de salir. Desde Guía de programación de démones y servicios :

Importante : Si su demonio se apaga demasiado rápido después de ser lanzado, launchd puede pensar que se ha estrellado. Los daemons que continúen con este comportamiento pueden ser suspendidos y no lanzados de nuevo cuando lleguen futuras peticiones. Para evitar este comportamiento, no se debe apagar durante al menos 10 segundos después del lanzamiento.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X