Node.js:当命令什么都不返回时,child_process.exec出错

时间:2019-07-08 02:20:07

标签: javascript node.js child-process

在nodejs中使用child_process.exec时,该命令不返回任何内容时会出错。我照做:

const {exec} = require('child_process');

const cmd = `ps -ef | grep -v grep | grep abc123.py`;
exec(cmd, (err, stdout, stderr) => {
    if(err) {
        console.error(`__get error: ${stderr}`);
        return;
    }
    console.log(stdout);
    return;
})

由于'abc123.py'未运行,因此如果直接运行此命令,则不返回任何内容。但是这段代码得到了:

__get error:

我在 Node 8.10.0和10.16.0 上遇到此错误。有什么我忽略的吗?

1 个答案:

答案 0 :(得分:0)

您尝试执行不存在的脚本,因此您的ps -ef | grep -v grep | grep abc123.py返回1作为退出代码,并且不向stderr写入任何内容。从Nodejs.org我们知道

  

任何非0的退出代码都被视为错误。

因此,您的代码正常工作。