Я починаю процес нересту дитини таким чином:
let process = spawn(apiPath, {
detached: true
})
process.unref()
process.stdout.on('data', data => { /* do something */ })
Коли я запускаю процес, мені потрібно тримати його доданим, тому що я хочу прочитати його вихід. Але перед тим, як закрити свій Node процес (батьківський), я хочу від'єднати всі незакінчені дочірні процеси, щоб вони не працювали у фоновому режимі, але як говорить документація :
При використанні окремої опції для запуску тривалого процесу процес не залишатиметься запущеним у фоновому режимі після виходу з батьків, якщо він не забезпечений конфігурацією stdio, яка не підключена до батьківського.
Але з варіантом stdio: 'ignore'
я не можу прочитати, stdout
що є проблемою.
Я намагався вручну закрити труби, перш ніж закрити батьківський процес, але це не вдалося:
// Trigger just before the main process end
process.stdin.end()
process.stderr.unpipe()
process.stdout.unpipe()