将Node作为Cron任务运行

时间:2014-12-08 13:24:00

标签: node.js bash cron

我有一个简单的问题。我尝试通过bash脚本在Cron任务上运行Node JS程序。

所以,在crontab -e上,我创建了一个执行boot.sh的任务@reboot:

# m h  dom mon dow   command
@reboot bash /home/pi/boot.sh

我的bash脚本:

#!/bin/sh
set -e
cd /home/pi/Sites/node-raspberry-pi/
/usr/bin/git pull
node /home/pi/Sites/node-raspberry-pi/index.js 3000 # where 3000 is the argument of my program
exit 0

当我执行bash /home/pi/boot.sh时,它会按预期工作。

我想念什么?

注意:crontab -ebash /home/pi/boot.sh都被视为pi用户。

1 个答案:

答案 0 :(得分:4)

node正在运行时,您的cron可能无法找到;因为cron的搜索路径有限。尝试在安装node的任何地方添加前缀,例如,而不是

node /home/pi/Sites/node-raspberry-pi/index.js 3000

你会得到

/usr/local/bin/node /home/pi/Sites/node-raspberry-pi/index.js 3000

您还可以扩展cron的搜索路径,请参阅man 5 crontab。希望这会有所帮助..