我知道您可以通过执行以下操作在 Crontab 中运行 Node.js 脚本:
0 * * * * node /path/to/your/script.js
但我想使用 Crontab 运行 Node.js 应用程序,而不是脚本。我创建了一个 Node.js 应用程序,以便使用 Mocha、Chai 和 Selenium 编写一些自动化测试,并且我想使用 Crontab 定期运行它。我该怎么做呢?我目前通过在命令行中编写来运行我的应用程序:
npm run api-pro
其中 api-pro 是我的 package.json 中的一个脚本,它为生产 api 调用一些测试。
请注意,如果我只是尝试使用命令“npm run api-pro”编写 Crontab 作业,它无法识别命令 npm(显然我的计算机中安装了 Node)。
最佳答案
我的猜测是用户 cron
使用的 PATH
没有像你的用户那样配置 PATH
,也不知道 node
也不是 npm
.
您可以尝试使用命令 which node
来了解您的 Node 二进制文件在哪里 (/some/path/to/node
)
然后你可以在你的 crontab 中使用绝对路径:
0 * * * * /some/path/to/node /path/to/your/script.js
编辑:
将 node
和 npm
添加到 $PATH
与使用绝对路径之间的区别在于绝对路径适用于一个可执行文件,因为 Linux不必搜索 PATH
。
添加到 PATH
将使 Linux 识别 node
和 npm
就像在您的用户中一样。它们在同一个文件夹中的事实不会影响这一点。
关于node.js - 无法使用 Node.js 和 Crontab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54557146/