尝试从Crontab运行Node脚本时出错



我正试图从下面的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中设置的环境变量。我不确定我在这里还能做错什么,任何帮助都将不胜感激!

当出现路径问题时,通常会发生这种情况,请尝试执行以下操作。

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

作为真正登录用户运行的更好方法:

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

你得到的环境与你测试的环境完全相同

最新更新