【问题标题】:nodejs script not running in crontjobnodejs脚本未在crontjob中运行
【发布时间】:2015-02-08 08:29:16
【问题描述】:

您好,我想向 cronjob 添加一个 nodejs 脚本,但我似乎无法让它工作。我正在使用 shell 调用节点脚本。我尝试制作另一个 nodejs 脚本来测试它是否工作,我的意思是如果我的路径错误但那个工作正常。

运行脚本

#!/bin/sh
echo `date +%s` >> /path/cron.log
/usr/bin/node /path/main.js >> /path/cron.log

运行脚本1

#!/bin/sh
echo `date +%s` >> /path/cron.log
/usr/bin/node /path/test.js >> /path/cron.log

在 cron 中:

0       *       *       *       *       /path/runScript
0       *       *       *       *       /path/runScript1

所以回顾一下,我在 cron.log 中打印了两个日期,但之后只有 test.js 文件运行,main.js 没有运行。当我尝试像这样手动运行 ./runScript 时,它起作用了。

【问题讨论】:

  • 拥有访问/path/test.js/path/cron.log的cron用户权限?
  • 只要确保 cron(在某些情况下可能是 root)用户能够访问 /path
  • 是的,shell 脚本和 js 脚本都具有相同的权限,并且能够写入日志文件。我的意思是 test.js/runScript1 和 main.js/runScript 位于具有相同权限的同一文件夹中,它们都将echo date 写入 cron 但只有测试运行节点脚本
  • 并确保已为 cron 用户设置了节点。
  • su crontab <<'EOF' /usr/bin/node /path/main.js >> /path/cron.log EOF 怎么说?

标签: javascript node.js bash cron crontab


【解决方案1】:

毕竟问题出在脚本中的 NodeJS 模块路径,所以 Bash 和 Cron 没问题!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    相关资源
    最近更新 更多