【发布时间】: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