0 votos

¿Qué salió mal con mi launchd plist?

He configurado un plist launchd para ejecutar un shell script todas las mañanas a las 8 AM

(véase ¿Existe alguna forma sencilla de programar automáticamente un movimiento de archivos que coincidan con un determinado patrón desde un directorio de usuario a una unidad USB? para el contexto).

Ayer creé el plist, lo puse en /Library/LaunchDaemons e hice un launchctl load /Library/LaunchDaemons/sweep.plist (ya sea sudo'd o en un bash sudo) una vez que estaba en su lugar.

¡PERO NO FUNCIONÓ! Se llama "sweep.plist", y 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>sweep</string>
<key>Program</key>
<string>/Users/europa/sweep.sh</string>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>8</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>

Estoy absolutamente seguro de que después de hacer el launchctl load ayer, "barrido" apareció en un launchctl list pero mi shell script no se ejecutó, y el demonio ya no aparece cuando hago un launchctl list .

Novedad: Comprobé el registro del sistema y, efectivamente, había un mensaje de error. No estoy seguro de qué hacer al respecto: May 10 08:00:05 Europas-Mac-mini com.apple.xpc.launchd[1] (sweep[1299]): Program specified by service is not a Mach-O executable file.

Mirando el shell script con un ls -l muestra los permisos como -rwxr-xr-x@

¿Alguna idea de qué he podido hacer mal o dónde buscar el problema?

0voto

hbquikcomjamesl Puntos 51

Ver: https://stackoverflow.com/a/39062525/3654526

Parece que un tinglado genérico ( #! ) está bien si llama al script desde una línea de comandos, pero no desde launchd. Necesita especificar un shell en el shebang, es decir, #!/bin/bash .

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