3 votos

Necesidad de asistencia y solución de problemas de aprendizaje launchctl y plist

Siempre he sido un crontab chico. Recientemente me he decidido a hacer el cambio a Apple launchd procesos, y soy incapaz de conseguir mi primer plist para ejecutar.

  1. El plutil -lint comando me dice que el plist está formateado correctamente. En realidad, las salidas de "ACEPTAR".

  2. Tengo ejecutar el bash script manualmente y confirmó que funciona correctamente cuando se inicie manualmente.

  3. He cargado el archivo con launchctl load y recibió la respuesta: "ya cargado" en los repetidos intentos de hacer lo mismo.

El problema tiene que estar en mi PLIST definición. Por favor me ayudan a detectar el error.

Espero que esto se ejecute con las siguientes condiciones:

  • Únicamente mientras el usuario jaredclemence está usando el sistema
  • Una vez inmediatamente en el inicio de sesión
  • Posteriormente cada 15 minutos
  • Cambie el Directorio a /Library/WebServer/Documents/medface/ antes de ejecutar la secuencia de comandos.

El archivo plist es como sigue:

<?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>
        <key>Label</key>
        <string>org.pediatricheartcenter.medface.crons</string>
        <key>User</key>
        <string>jaredclemence</string>
        <key>ProgramArguments</key>
        <array>
                <string>/User/jaredclemence/runMedfaceSchedTasks.batch</string>
        </array>
        <key>WorkingDirectory</key>
        <string>/Library/WebServer/Documents/medface</string>
        <key>StartInterval</key>
        <integer>900</integer>
        <key>RunAtLoad</key>
        <true/>
</dict>
</plist>

Notas:

  • He guardado el archivo en ~/Library/LaunchAgents/org.pediatricheartcenter.medface.crons.plist
  • Una versión anterior del archivo utilizado Program en lugar de ProgramArguments con un <string> valor en lugar de una matriz.

4voto

Jared Clemence Puntos 116

Launchd escribe errores del sistema.registro. El uso de la Consola, he visto el registro. Allí, launchd me dijo que no le gustaba mi User del valor de la clave. He quitado el Usuario jaredclemence par clave-valor, y cargado el plist de nuevo. Entonces me dijo que el programa de proceso por lotes no existe y entonces me di cuenta de el error en la ruta de acceso del archivo. /User debe /Users

Mediante la eliminación de la configuración de Usuario y modificar la ruta de acceso del archivo, yo era capaz de solucionar el problema. Ahora, ejecución ps -ef | grep 'runMed', yo soy capaz de ver que el archivo por lotes se está ejecutando actualmente.

El ÉXITO!

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