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?