Node.js: процесс Spawn Hang - PullRequest
       20

Node.js: процесс Spawn Hang

0 голосов
/ 17 октября 2018

Я пытаюсь запустить следующую команду оболочки:

netstat -nat | grep 3000

и в конечном итоге

netstat -nat | grep 3000 | grep ESTABLISHED

из Node.js вполучить IP-адрес, связанный с конкретным портом, используя spawn в соответствии с https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options, показанным ниже:

const netStat = spawn('netstat', ['-nat']);
const grep = spawn('grep', ['3000']);

netStat.stdout.on('data', (data) => {
  grep.stdin.write(data);
});

console.log('Determining public ip\'s connected to port 3000');
grep.stdout.on('data', function(data){
  console.log(data.toString());
});

Но результат просто зависает, я что-то не так делаю?Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 18 октября 2018

Поскольку вы не читаете из канала stderr и не игнорируете stdio, используя опции, процесс зависает, потому что канал все еще открыт до чтения из.

Аналогичная, но не связанная с этим проблема Почему мой дочерний процесс Node, который я создал с помощью spawn (), зависает? .

...