Saya memulai proses menelurkan anak dengan cara ini:
let process = spawn(apiPath, {
detached: true
})
process.unref()
process.stdout.on('data', data => { /* do something */ })
Ketika saya memulai proses saya harus tetap terhubung karena saya ingin membaca hasilnya. Tetapi tepat sebelum menutup proses Node saya (orang tua) saya ingin melepaskan semua proses anak yang belum selesai agar mereka tetap berjalan di latar belakang, tetapi seperti yang dikatakan dalam dokumentasi :
Saat menggunakan opsi terlepas untuk memulai proses yang berjalan lama, proses tidak akan tetap berjalan di latar belakang setelah induk keluar kecuali jika disediakan dengan konfigurasi stdio yang tidak terhubung ke induk.
Tetapi dengan pilihan stdio: 'ignore'
saya tidak bisa membaca stdout
yang merupakan masalah.
Saya mencoba untuk secara manual menutup pipa sebelum menutup proses induk tetapi tidak berhasil:
// Trigger just before the main process end
process.stdin.end()
process.stderr.unpipe()
process.stdout.unpipe()