gpt4 book ai didi

node.js - 为什么 cron 不执行我的 node.js 脚本?

转载 作者:行者123 更新时间:2023-12-04 18:49:46 26 4
gpt4 key购买 nike

我希望我的服务器每分钟执行一个 Node 脚本。如果我手动执行文件( ./main.js ),程序会完美执行,所以我很确定这不是问题。但是当我把它交给 cron 执行时,什么也没有发生。

这是 cron 文件中的行。
*/1 * * * * /home/bryce/scripts/wudu/main.js
这是一个示例日志:
Oct 11 15:21:01 server CROND[2564]: (root) CMD (/home/bryce/scripts/wudu/main.js)
可执行文件:home/bryce/scripts/wudu/main.js

#!/usr/bin/env node

var program = require('commander');
var v = require('./cli/validation');
var a = require('./cli/actions');

program
.version('0.0.1')
.option('-u, --url', 'Register url')
.option('-s, --selector', 'Register selector')
.option('-p, --pagination', 'Register pagination')
.option('-i, --index', 'Pass an index, to destroy')
.parse(process.argv);

var args = process.argv.slice(2),
mode = v.mode(args[0]),
options = v.hasArgs(mode, program);

a.init(mode, options);

知道为什么我会收到 radio 静音吗?我应该在其他地方进行调试?

更新:

我相信这个问题与我的相对文件路径有关,并且 main.js 是从它自己的目录之外执行的。

所以现在,我放置了 exe.shwudu目录。它看起来像这样:
#!/bin/bash

cd ${0%/*}
./main.js mail

exit

现在,我已将 cron 设置为每分钟执行一次此文件。我尝试从其他文件夹执行此文件,它按预期工作。但同样,cron 并没有接受它。

最佳答案

将执行包装在 shell 脚本中,很可能在 cron 中执行脚本的环境设置与从命令行运行时设置的环境不同。

尝试使用设置 NODE_PATH 在 cron 中执行 shell 脚本。 & PATH(如果您需要这些值,请在命令行输入:echo $NODE_PATHecho $PATH)

因此,您的 cron 条目将如下所示:

*/1 * * * * NODE_PATH=/usr/local/lib/node_modules PATH=/opt/local/bin:ABC:XYZ /home/bryce/scripts/wudu/exe.sh

只需确保将实际值替换为 NODE_PATH & PATH与您从 echo 获得的信息您第一次执行的命令。

关于node.js - 为什么 cron 不执行我的 node.js 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62203849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com