Estoy tratando de ejecutar un script de nodo cada hora en mi Mac (OSX 10.8.2 Mountain Lion). Según los resultados de búsqueda de alto rango, la mejor manera de hacerlo es agregar un launchd
agente de lanzamiento.
Por alguna razón, no parece funcionar.
Escribí el siguiente archivo de agente de lanzamiento y lo guardé como ~/Library/LaunchAgents/agenttest.plist
.
<?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>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>Label</key>
<string>protocol</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/node</string>
<string>/Users/snorpey/PATH/TO/file.js</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>3600</integer>
</dict>
</plist>
Comencé el agente de lanzamiento ejecutándome launchctl load ~/Library/LaunchAgents/agenttest.plist
en la terminal.
También hice el archivo de script ejecutable con sudo chmod -x /Users/snorpey/PATH/TO/file.js
y actualicé los permisos del archivo con sudo chmod 777 /Users/snorpey/PATH/TO/file.js
.
Cuando ejecuto /usr/local/bin/node /Users/snorpey/PATH/TO/file.js
en la terminal, el script funciona bien.
Sin embargo, no parece funcionar cuando está dirigido por launchd
. Recibo los siguientes mensajes en /var/log/system.log
:
Jan 15 22:32:46 snorpey com.apple.launchd.peruser.501[595] (agenttest[21625]): Exited with code: 1
Jan 15 22:32:46 snorpey com.apple.launchd.peruser.501[595] (agenttest): Throttling respawn: Will start in 10 seconds
¿Por qué no puede ejecutar el script?