Я пытаюсь создать дочерний процесс из сценария node.js (parent) таким образом, чтобы не было никаких помех между родительским и дочерним потоком данных.Родитель должен иметь идентификатор дочернего процесса только при запуске дочернего процесса и иметь возможность завершить его.child_process.exec
делает часть того, что мне нужно, но, к сожалению, он буферизует вывод дочернего элемента и, следовательно, по мере заполнения буфера дочерний процесс вылетает.Есть ли способ устранить буферизацию?Дочерний процесс бесконечен по своей природе (поток данных).Или может быть есть другой способ реализовать элементы управления?
Пример кода (только для демонстрации):
const { exec } = require('child_process');
const keypress = require('keypress');
keypress(process.stdin);
var c1;
process.stdin.on('keypress', (letter, key) => {
if (key && key.name == 'a') {
c1.kill();
} else if (key && key.name == 'b') {
c1 = exec('ffplay -i udp://localhost:4000', (err, stdout, stderr) => {
if (err) {
console.error(`error: ${err}`);
}
});
}
});
Я пробовал spawn
, но вмешательство ребенка - родителя еще более серьезное