Tengo el siguiente launchd guardado como agente en: /Users/my_name/Library/LaunchAgents
<?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>local.desktop.cleanup</string>
<key>ProgramArguments</key>
<array>
<string>zsh</string>
<string>-c</string>
<string>/usr/local/bin/trash ~/Desktop/Screen*</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>3600</integer>
<key>StandardErrorPath</key>
<string>/tmp/local.desktop.cleanup.err</string>
<key>StandardOutPath</key>
<string>/tmp/local.desktop.cleanup.out</string>
<key>KeepAlive</key>
<dict>
<key>NetworkState</key>
<true/>
</dict>
</dict>
</plist>
Se trata de un sistema muy sencillo programa que se mueve, en lugar de elimina los archivos seleccionados a la papelera. Sólo he estado probando el éxito del launchd con RunAtLoad y no consigo que funcione. Obtengo el siguiente error en mi archivo de registro después de cada vez que me conecto:
zsh:1: no matches found: /Users/my_name/Desktop/Screen*
Mi Escritorio es en realidad una de esas carpetas de icloud que supongo que MacOS acaba de tener symlinked. Mi teoría es que tal vez estos archivos no existen localmente en el momento de ejecutar el programa. Si este es el caso, o no, agradecería cualquier idea o solución para que este caso de uso específico funcione.
N.B. Notarás que dejé el KeepAlive NetworkState para mostrar que intenté retrasar la ejecución hasta que la red estuviera "viva", sin embargo, esto no contaría con la descarga de ningún archivo.