launchd sigue reiniciando mi binario en / Library / PrivilegedHelperTools

2

Estoy buscando instalar una herramienta de ayuda privilegiada usando SMJobBless . < br> Mi lista solo contiene la clave MachServices y la clave RunAtLoad . El RunAtLoad se establece en verdadero ya que quiero que se inicie automáticamente después de la instalación.

Ahora, el problema es que una vez que la herramienta auxiliar se instala y se inicia y completa su trabajo con éxito, se vuelve a iniciar y esto sigue sucediendo una y otra vez.

Ticket de trabajo original launchd

<?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">  
<key>Label</key>  
<string>com.ak.SMJobBlessHelper</string>  
<key>MachServices</key>  
<dict>  
<key>com.ak.SMJobBlessHelper.mach</key>  
<true/>  
</dict>  
<key>ProgramArguments</key>  
<array>  
<string>/Library/PrivilegedHelperTools/com.ak.SMJobBlessHelper</string>  
</array>  
<key>RunAtLoad</key>  
<true/>  
</plist>

He intentado varias cosas para evitar que se inicie de nuevo, pero en vano:

  1. Se intentó agregar KeepAlive a false en el plist.
  2. Se intentó agregar KeepAlive como un diccionario con la clave SuccessfulExit a falso.
  3. Intenté hacer que mi aplicación durmiera por momentos ocultos antes de dejar de hacerlo, como dormir durante 5 minutos, 10 minutos, etc., pero aún se vuelve a iniciar.

Básicamente me he quedado sin ideas, quiero que se inicie solo cuando pregunto y no automáticamente y eso también una y otra vez.

Por favor ayuda. Muchas gracias.

SO: Mac OS X 10.8.4 12E55
Xcode: 4.6.2 (4H1003)

    
pregunta dDarkLORD 21.10.2013 - 08:47

1 respuesta

1

El ticket de trabajo de launchd en la pregunta tiene un formato incorrecto; el objeto raíz debe ser un dict :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   ...
</dict>
</plist>

Suponiendo que se trata de un error de copiar y pegar, ¿con qué rapidez se completa com.ak.SMJobBlessHelper ?

Algunas configuraciones de launchd requieren que el proceso permanezca en ejecución durante un mínimo de 30 segundos; de lo contrario, launchd considerará el proceso como bloqueado y lo reiniciará automáticamente.

¿Cumple su com.ak.SMJobBlessHelper con los requisitos establecidos en documentación de launchd ?

    
respondido por el Graham Miln 20.03.2014 - 14:04

Lea otras preguntas en las etiquetas