ฉันเริ่มต้นกระบวนการเลี้ยงลูกด้วยวิธีนี้:
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()