2016-12-12 265 views
0

我试图在Ubuntu 14.04服务器上运行节点脚本作为CRON作业。我正在使用nvmcrontab不会在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

确保您的crontab正常工作。你在cron的最后有没有行尾? http://serverfault.com/questions/230370/why-is-only-one-wget-command-working-in-my-crontab – klodoma

+0

您是否尝试了第三个节点可执行文件路径的完整解决版本例子,而不是相对'〜'? cron不会以你的用户身份运行,所以'〜/ .nvm'不会存在。 – mscdex

+0

cron不会像用户那样运行问题,但典型情况是以root身份运行cron作业。在任何情况下,包括$ HOME的大多数环境变量都不可用,因此'〜'字符的扩展将不起作用。 –

回答

0

我的解决方法:

我创建了我里面pm2forever NPM模块运行的脚本。

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