尝试从Crontab运行节点脚本时出错

时间:2018-08-03 23:42:12

标签: node.js cron

我正在尝试从下面的crontab中运行一个非常简单的Node.js测试脚本(console.log(2+2);):

* * * * * /home/user/.nvm/versions/node/v10.8.0/bin/node /home/user/testingNode/script.js

但是我收到错误:

Error: Cannot find module '/home/user/testingNode/script.js'

但是,当我尝试使用Node在cron之外运行脚本时,它可以很好地工作并输出4

/home/user/.nvm/versions/node/v10.8.0/bin/node /home/user/testingNode/script.js

我使用nvm在服务器上安装了Node v10.8.0,并将节点路径设置为指向全局node_modules目录,因此echo $NODE_PATH返回:

/home/user/.nvm/versions/node/v10.8.0/lib/node_modules

但是我的猜测是cron在运行时会忽略.bash_profile中设置的环境变量。我不确定在这里我还能做错什么,任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

通常在出现路径问题时发生,请尝试执行以下操作。

* * * * * export NODE_PATH=<your global node module dir> && /home/user/.nvm/versions/node/v10.8.0/bin/node /home/user/testingNode/script.js

答案 1 :(得分:0)

以真正登录的用户身份运行的更好方式:

0 0-7 * * * /bin/su - root -c "/root/killvnc.sh" 2>&1

您将获得与测试相同的精确环境

相关问题