如何忽略child_process.exec生成的错误?

时间:2017-04-25 15:36:09

标签: javascript node.js bash shell

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

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

以下是代码段的一小部分

turtles-own

1 个答案:

答案 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
}