Estoy intentando programar mi AppleScript para que se ejecute en intervalos de 60 segundos y que ejecute dos scripts de shell y parece que he configurado mi plist correctamente para que se generen dos archivos (StandardErrorPath y StandardOutPath) una vez transcurridos 60 segundos, pero no veo que aparezcan los resultados de mis scripts de shell como lo hacían cuando ejecutaba el scripts en scripts Editor. Para mí esto parece significar que la sección ProgramArguments no está cargando mi AppleScript. ¿Puede alguien indicarme la dirección correcta? ¿Debería añadir algún tipo de registro a mi AppleScript para registrar el archivo de error en mi plist?
Archivo AppleScript (Shell script se ejecuta correctamente en script Editor y Terminal):
do shell script "cd /Users/user/Desktop/Projects/node/webmasters-cli && /Users/user/.nvm/versions/node/v4.3.2/bin/node app.js DesktopUSA"
do shell script "cd /Users/user/Desktop/Projects/node/webmasters-cli && /Users/user/.nvm/versions/node/v4.3.2/bin/node app.js DesktopAll"
plist (Ubicado en /Users/user/Library/LaunchAgents)
<?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>com.user.webmasters.daily.pull</string>
<key>KeepAlive</key>
<false/>
<key>RunAtLoad</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/Users/user/Desktop/Projects/node/webmasters-cli/daily-api-call.scpt</string>
</array>
<key>StartInterval</key>
<integer>60</integer>
<key>StandardErrorPath</key>
<string>/tmp/webmastersDailyTest.err</string>
<key>StandardOutPath</key>
<string>/tmp/webmastersDailyTest.out</string>
</dict>
</plist>
Pasos para cargar en launchctl:
1) Cambiado a directorio
2) corrió launchctl load com.user.webmasters.daily.pull.plist
3) Comprobado con launchctl list
. plist apareció.
4) Comprobado /tmp
y los archivos StandardErrorPath y StandardOutPath se crean transcurridos 60 segundos. No hay valores dentro de los archivos como se esperaba.
0 votos
¿Por qué no ejecutar los shell scripts directamente desde launchd?
0 votos
@Mark para ser honesto estoy aprendiendo acerca de la automatización de la programación en mac y no sé mucho acerca de
launchd
. ¿Puede programar shell scripts para que se ejecuten con una frecuencia específica? (Día de la semana, hora, etc.)0 votos
Sí y eso es lo que está haciendo launchd se está ejecutando un programa que coiuld ser un shell script - para facilitar la escritura de la mirada plists en herramientas como LaunchControl
0 votos
@Mark ¿puedes recomendar en una respuesta tu cambio sugerido a mi plist para ejecutar el shell script?