¿Por qué cron no ejecuta mi script node.js?
Quiero que mi servidor ejecute un script de nodo cada minuto. El programa se ejecuta perfectamente si ejecuto el archivo manualmente (./main.js
), así que estoy bastante seguro de que no es el problema. Pero cuando se lo entrego a cron para que se ejecute, no pasa nada.
Aquí está la línea del archivo cron.
*/1 * * * * /home/bryce/scripts/wudu/main.js
Y aquí hay un registro de muestra:
Oct 11 15:21:01 server CROND[2564]: (root) CMD (/home/bryce/scripts/wudu/main.js)
El ejecutable:home/bryce/scripts/wudu/main.js
#!/usr/bin/env node
var program = require('commander');
var v = require('./cli/validation');
var a = require('./cli/actions');
program
.version('0.0.1')
.option('-u, --url', 'Register url')
.option('-s, --selector', 'Register selector')
.option('-p, --pagination', 'Register pagination')
.option('-i, --index', 'Pass an index, to destroy')
.parse(process.argv);
var args = process.argv.slice(2),
mode = v.mode(args[0]),
options = v.hasArgs(mode, program);
a.init(mode, options);
¿Alguna idea de por qué recibo silencio de radio? ¿En algún otro lugar debería buscar depurar?
ACTUALIZAR:
Creo que el problema tiene que ver con mis rutas de archivos relativas y que main.js se ejecuta desde fuera de su propio directorio.
Así que ahora he colocadoexe.sh
en elwudu
directorio. Se parece a esto:
#!/bin/bash
cd ${0%/*}
./main.js mail
exit
Ahora, he configurado cron para ejecutar este archivo cada minuto. Intenté ejecutar este archivo desde otras carpetas, y funciona como se esperaba. Pero de nuevo, cron no lo está recogiendo.