从crontab运行全局节点模块二进制文件

时间:2018-11-10 22:19:18

标签: node.js bash cron node-modules

我正在尝试从npm install -g lungo-cli内部运行节点模块(crontab)。

我尝试过的是从crontab中调用节点二进制文件:

* * * * * lungo

没有运气。

然后我尝试了:

* * * * * /usr/local/bin/lungo

再次,没有运气。

所以最后我做了我认为是一种解决方法,直接使用shelljs从javascript文件中调用了节点模块。

Javascript:

const shell = require('shelljs')
shell.exec('lungo')

我什至尝试在本地运行它!

const lungo = require('lungo-cli/bin/lungo')
const shell = require('shelljs')

const shell.exec('lungo')

Crontab:

* * * * * /usr/local/bin/node $HOME/scripts/lungo.js

它是一样的,它不起作用,似乎crontab在与我的zsh shell完全不同的环境中运行,并且找不到OSX特定的二进制文件,例如{ {1}},catrm等。

我将Mac OSX 10.14.1(Mojave)和cd用作外壳。

我该怎么做?我希望能够使用crontab调用我的node cli程序。

1 个答案:

答案 0 :(得分:0)

我在Macbook中使用了Oh-my-zsh,所以我尝试了很多事情来使crontab任务运行,但是最后,我的解决方案是在命令运行前添加.zshrc。

*/30 * * * * . $HOME/.zshrc; node  /path/for/my_script.js

此任务每30分钟运行一次,并使用.zshrc配置文件执行我的node命令。不要忘记在$ HOME变量前使用点。

顺便说一句,您可以运行附加到zsh环境的任何命令。