我有一个简单的问题。我尝试通过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 -e
和bash /home/pi/boot.sh
都被视为pi
用户。
答案 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
。希望这会有所帮助..