【问题标题】:Running Node as Cron task将节点作为 Cron 任务运行
【发布时间】:2015-02-06 04:04:36
【问题描述】:

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

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

# 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 用户执行。

【问题讨论】:

  • 使用节点二进制文件的完整路径。您也没有在 cron 脚本中使用bash,而是使用sh。可能在这里不会有任何区别,但需要注意

标签: node.js bash cron


【解决方案1】:

可能是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。希望这会有所帮助..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-26
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    相关资源
    最近更新 更多