不能够使用Node.js和受的crontab
我知道,你可以做这样的事情在运行一个crontab的Node.js的脚本:
0 * * * * node /path/to/your/script.js
但我想运行一个应用程序的Node.js,而不是一个脚本,使用crontab的。我为了写使用摩卡,湾仔及硒一些自动化测试创建的Node.js应用程序,我想用crontab的定期运行它。我将如何去这样做呢?我目前在命令行中运行写我的应用程序:
npm run api-pro
当API-PRO是从我的package.json的脚本调用用于生产API一些测试。
需要注意的是,如果我只是尝试写使用下面的命令crontab的工作“NPM运行API-PRO”不承认的命令NPM(显然我必须安装在我的电脑节点)。
回答如下:我的猜测是,用户cron
使用不配置PATH
以同样的方式为你的用户,不知道node
也不npm
。
你可以尝试是使用命令which 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
就像在你的用户。他们是在同一个文件夹中,这一事实不会影响。