2016-12-12 7 views
0

Я пытаюсь запустить скрипт узла как задание CRON на сервере Ubuntu 14.04. Я использую nvm.Crontab не запускает скрипт узла на сервере ubuntu

Я пробовал:

* * * * * /usr/bin/env node /var/www/apps/gmail-api/exe/m.js recent [email protected] 

, а также:

* * * * * node /var/www/apps/gmail-api/exe/m.js recent [email protected] 

и, наконец:

* * * * * ~/.nvm/bin/node-v6.6.0-linux-x64 /var/www/apps/gmail-api/exe/m.js recent [email protected] 

ни работал.

Однако, если я бегу:

node /var/www/apps/gmail-api/exe/m.js recent [email protected] 

он работает отлично.

Почему crontab не запускает мой сценарий?

+0

Убедитесь, что ваш кронтаб работает. У вас есть конец строки в конце cron? http://serverfault.com/questions/230370/why-is-only-one-wget-command-working-in-my-crontab – klodoma

+0

Вы пробовали полную, разрешенную версию исполняемого пути узла в третьем вместо того, чтобы сделать его относительным с '~'? cron не будет работать как ваш пользователь, поэтому '~/.nvm' не будет существовать в любом случае. – mscdex

+0

cron не будет работать как пользователь, но типичным случаем является выполнение заданий cron с правами root. в любом случае большинство переменных среды, включая $ HOME, недоступны, поэтому расширение символа '~' не будет работать. –

ответ

0

Мой обходной путь:

Я создал скрипт, который я бегу внутри pm2 или forever модуль НПМ.

setInterval(()=>{ 
    child_process.exec('node scriptname.js arg1 arg2', (err, stdout, stderr)=>{ 
    if (err) { 
     console.log(err); 
    } 
    console.log(stdout); 
    console.log(stderr); 
    }); 
}, 60000) 

 Смежные вопросы

  • Нет связанных вопросов^_^