node.js - 将 Node 作为 Cron 任务运行

标签 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 用户身份执行。

最佳答案

可能是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/

相关文章:

linux - 在 Bash 中递归列出给定目录中的文件

path - 定时任务 : Command Not Found

python - Crontab 未在适用于 Linux 的 Windows 子系统 (WSL) 上运行 python 脚本

unix - 如何在没有 crontab 命令的情况下在 unix 中安排作业?

javascript - 内置事件和自定义事件的 node.js 事件循环的行为差异

javascript - 如何在 Javascript 中解析/过滤 JSON 文件中的数据

ruby - 是否可以在 Chef 中使用 bash 设置 Ruby ENV?

windows - "conda: command not found",Windows 上的 Bash

javascript - 从 'react/lib/ReactComponentTreeHook' 找不到模块 'ReactDebugTool.js'

javascript - 每个方法都需要 @JsName 注释吗?