Nodejs: child_process.exec получить ошибку, когда команда ничего не возвращает - PullRequest
0 голосов
/ 08 июля 2019

При использовании child_process.exec в nodejs возникает ошибка, когда команда ничего не возвращает. Я делаю следующее:

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:

Я встречаю эту ошибку с Узлом 8.10.0 и 10.16.0 . Я что-то игнорировал?

1 Ответ

0 голосов
/ 08 июля 2019

Вы пытаетесь выполнить несуществующий скрипт, поэтому ваш ps -ef | grep -v grep | grep abc123.py возвращает 1 в качестве кода выхода и ничего не записывает в stderr. Из Nodejs.org мы знаем, что

Любой код выхода, отличный от 0, считается ошибкой.

Итак, ваш код работает правильно.

...