我有一个简单的问题。我尝试通过 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
用户身份执行。
最佳答案
可能是cron
运行时找不到你的 Node
;因为 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
。希望这有帮助..
关于node.js - 将 Node 作为 Cron 任务运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27359033/