2013-04-02 10 views
4

Я пытаюсь запустить скрипт узла с помощью crontab, но он не работает, как я ожидал (Ubuntu 12.04). В моем кронтабе файла я получилУзел и crontab не работают должным образом

*/1 * * * * node /home/me/path/to/script.js > /home/me/path/to/output

Это производит вывод пустой строки в то время как он не должен.

Когда я запускаю node /home/me/path/to/script.js > /home/me/path/to/output, хотя, вручную, все идет хорошо.

Не могли бы вы мне помочь?

+6

Попробуйте изменить 'node' на то, что происходит от' which node'. То есть, полный путь к бинарному процессу выполнения. – fedorqui

+0

Также убедитесь, что ваш скрипт crontab работает как 'me', а не' www-data' или что-то подобное. –

+0

как сказал @fedorqui, используйте абсолютный путь. Это не только для Node, вы всегда должны использовать абсолютные пути с 'crontab'. Объяснение здесь: http://clickmojo.com/code/cron-tutorial.html – TheBronx

ответ

3

Изменить nodewhich node. То есть, полный путь к бинарному процессу выполнения.

*/1 * * * * /path/to/node /home/me/path/to/script.js > /home/me/path/to/output 
#   ^^^^^^^^^^^^^ 

значение, как правило, что-то вроде /usr/bin/node.

+1

Выполняется ли */1 каждую минуту? Великолепно каждый день узнавать что-то новое! – Jess

+1

Да! На самом деле я недавно искал информацию об очень эквивалентных выражениях для написания в crontab: http://stackoverflow.com/questions/13853793/is-these-cron-expressions-equivalent/15441278#15441278 – fedorqui