Warum wird mein node.js-Skript nicht ausgeführt?
Ich möchte, dass mein Server jede Minute ein Knotenskript ausführt. Das Programm funktioniert einwandfrei, wenn ich die Datei manuell ausführe ./main.js
), also bin ich mir ziemlich sicher, dass es nicht das Problem ist. Aber wenn ich es cron zur Ausführung übergebe, passiert nichts.
Hier ist die Zeile aus der Cron-Datei.
*/1 * * * * /home/bryce/scripts/wudu/main.js
Und hier ist ein Beispielprotokoll:
Oct 11 15:21:01 server CROND[2564]: (root) CMD (/home/bryce/scripts/wudu/main.js)
Die ausführbare Datei: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);
Eine Idee, warum ich Funkstille bekomme? Woanders sollte ich nach einem Debug suchen?
AKTUALISIEREN
Ich glaube, das Problem hat mit meinen relativen Dateipfaden zu tun, und main.js wird von außerhalb seines eigenen Verzeichnisses ausgeführt.
So jetzt habe ich platziertexe.sh
in demwudu
Verzeichnis. Es sieht aus wie das
#!/bin/bash
cd ${0%/*}
./main.js mail
exit
Jetzt habe ich cron so eingestellt, dass diese Datei jede Minute ausgeführt wird. Ich habe versucht, diese Datei aus anderen Ordnern auszuführen, und sie funktioniert wie erwartet. Aber cron nimmt es nicht auf.