gpt4 book ai didi

javascript - 如何忽略 child_process.exec 产生的错误?

转载 作者:行者123 更新时间:2023-12-05 07:43:37 54 4
gpt4 key购买 nike

我正在从我的 nodejs 脚本中执行 shell 脚本命令。其中一个命令是“npm install”,后跟一个运行 nodejs 文件的索引文件的命令。

npm install 命令返回由 node-gyp 生成的错误。一般来说,这个错误不会影响我的服务。但是,child_process.exec 正在捕获它并停止脚本。我的问题是,如何触发 exec 命令并忽略返回的错误?

下面是部分代码片段

const exec = require('child_process').exec;
exec("npm install", {
cwd: serviceDirectory + gitRepo
},
(error1, stdout, stderr) => {
if(error1){
//this error is for testing purposes
util.log(error1);
}
//run the service
exec("node index.js",{
cwd: serviceDirectory + gitRepo + "/"
}, cb);

});

}

最佳答案

可以使用try-catch来处理catch的错误,例如:

const { promisify } = require('util');
const exec = promisify(require('child_process').exec);

export default async function () {
const dataFormat = {
stdout: '',
stderr: '',
};
let cpu = dataFormat;
let diskUsed = dataFormat;

try {
cpu = await exec('top -bn1 | grep "Cpu(s)" | sed "s/.*, *\\([0-9.]*\\)%* id.*/\\1/"');
} catch (error) {
cpu.stderr = error.stderr;
}
try {
diskUsed = await exec("df -h | awk 'NR==2{printf $3}'");
} catch (error) {
diskUsed.stderr = error.stderr;
}

const payload = {
cpu,
diskUsed,
};
return payload
}

关于javascript - 如何忽略 child_process.exec 产生的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43615127/

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