2013-04-02 110 views
4

我想用crontab運行一個節點腳本,但它沒有像我期望的那樣工作(Ubuntu 12.04)。在我的crontab文件我節點和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

嘗試更改'節點'來自哪個節點。也就是說,把二進制執行過程的全路徑。 – fedorqui

+0

此外,請確保您的crontab腳本以'me'運行而不是'www-data'或類似的東西運行。 –

+0

@fedorqui表示,使用絕對路徑。這不僅適用於Node,您應該始終使用具有'crontab'的絕對路徑。這裏解釋:http://clickmojo.com/code/cron-tutorial.html – TheBronx

回答

3

node更改爲which 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