Inizi un processo figlio spawn in questo modo:
let process = spawn(apiPath, {
detached: true
})
process.unref()
process.stdout.on('data', data => { /* do something */ })
Quando inizio il processo devo tenerlo allegato perché voglio leggere il suo output. Ma appena prima di chiudere il mio processo Node (il genitore) voglio staccare tutti i processi figlio non finiti per mantenerli in esecuzione in background, ma come dice la documentazione :
Quando si utilizza l'opzione staccata per avviare un processo a esecuzione prolungata, il processo non rimarrà in esecuzione in background dopo la chiusura del genitore a meno che non sia fornito con una configurazione stdio che non è connessa al genitore.
Ma con l'opzione stdio: 'ignore'
non riesco a leggere stdout
quale sia un problema.
Ho provato a chiudere manualmente i tubi prima di chiudere il processo principale ma non è riuscito:
// Trigger just before the main process end
process.stdin.end()
process.stderr.unpipe()
process.stdout.unpipe()