0 votos

Launchd descargando LaunchDaemon

Tengo un script programado para ejecutarse como LaunchDaemon. scriptse ejecuta bien cuando se lanza manualmente a través de la terminal.

Tengo dos comandos

sudo launchctl unload -F /Library/LaunchDaemons/com.test.plist
sudo launchctl load -F /Library/LaunchDaemons/com.test.plist

plist a continuación

<?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.test.plist</string>
 <key>Program</key>
 <string>/usr/local/bin/test.sh</string>
 <key>StandardErrorPath</key>
 <string>/tmp/com.test.plist.err</string>
<key>StandardOutPath</key>
<string>/tmp/com.test.plist.out</string>
<key>StartCalendarInterval</key>
<dict>
    <key>Hour</key>
    <integer>18</integer>
    <key>Minute</key>
    <integer>4</integer>
</dict>

cuando se ejecutan por separado sí funcionan. Pero una vez programado en launchd se ejecuta durante una fracción de segundo y se descarga. Supongo que una vez que descarga el script deja de ejecutarse. Cambio los valores de los intervalos establecidos en el plist con otro script que es por lo que necesito descargar y cargar. ¿Hay otra manera de hacer esto?

1voto

rpetrich Puntos 25769

¿Es el problema tal vez que su unload no ha terminado antes de que el load ¿comienza el comando?

¿Qué tal si pruebas el kickstart en su lugar? "-k" indica a launchctl que "mate la instancia en ejecución antes de reiniciar el servicio".

sudo launchctl kickstart -k /Library/LaunchDaemons/com.test.plist

Tenga en cuenta que load y unload están ahora bajo "Comandos heredados" en la página man de launchctl de Yosemite.

0voto

MBP2013 Puntos 106

Gracias Alastair, es bueno saberlo para el futuro pero actualmente sólo estoy ejecutando Mavericks.

Mi solución fue poner los comandos de carga en el primer script (que no es ejecutado por launchd). Creo que el problema fue causado al intentar descargar y cargar mientras launchd ya estaba ejecutando el script.

Gracias por las sugerencias

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