2016-12-12 315 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) 
相關問題