Node.js - получить ссылку на процессы, порожденные child_process.spawn - PullRequest
1 голос
/ 30 мая 2020

Можно ли как-нибудь найти ссылку на дочерние процессы, порожденные текущим процессом, в node.js? У меня есть код, который использует стороннюю библиотеку, которая порождает новый процесс. Я хотел бы найти ссылку на этот процесс, привязать к нему какие-то события и отреагировать на вывод.

Я хочу сделать что-то подобное.

thirdparty. js

const cp = require('child_process');

function spawn(executable, args, stdio) {
  cp.spawn(executable, args, stdio);
}

module.exports = spawn

main. js

const spawn = require('thirdparty');

spawn()
const child = findTheProcess()
child.stdout.on('data', data => {
  // do stuff
});


child.on('message', data => {
  // do stuff

});

Одна из моих идей состояла в том, чтобы переопределить cp.spawn, но это звучит ужасно.

1 Ответ

0 голосов
/ 15 июня 2020

Если вы вернете вновь созданный процесс в thirdpaty.js, вы сможете ссылаться на него в main.js

Измененный код для отображения текущего каталога:

третья сторона. js

const cp = require('child_process');

function spawn(executable, args, stdio) {
  return cp.spawn(executable, args, stdio);
}

module.exports = spawn

основной. js

const spawn = require("./thirdparty")

const child = spawn("ls")

child.stdout.on("data", (data) => {
  console.log(data.toString())
})

child.on("message", (data) => {
  console.log(data.toString())
})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...