我正在从nodejs脚本执行shell脚本命令。其中一个命令是" npm install"后跟一个命令来运行nodejs文件的索引文件。
npm install命令返回node-gyp生成的错误。通常,此错误不会影响我的服务。但是,child_process.exec正在捕获它并停止脚本。我的问题是,如何触发exec命令并忽略返回的错误?
以下是代码段的一小部分
turtles-own
答案 0 :(得分:0)
您可以使用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
}