Tôi bắt đầu một đứa trẻ sinh sản xử lý theo cách này:
let process = spawn(apiPath, {
detached: true
})
process.unref()
process.stdout.on('data', data => { /* do something */ })
Khi tôi bắt đầu quá trình tôi cần phải giữ nó bởi vì tôi muốn đọc đầu ra của nó. Nhưng ngay trước khi đóng quy trình Node của tôi (cha mẹ), tôi muốn tách tất cả các tiến trình con chưa hoàn thành để giữ cho chúng chạy ở chế độ nền, nhưng như tài liệu nói:
Khi sử dụng tùy chọn tách rời để bắt đầu một quy trình chạy dài, quy trình sẽ không chạy trong nền sau khi cha mẹ thoát ra trừ khi được cung cấp cấu hình stdio không được kết nối với cha mẹ.
Nhưng với tùy chọn stdio: 'ignore'
tôi không thể đọc được stdout
đó là một vấn đề.
Tôi đã cố gắng tự đóng các đường ống trước đó để đóng quy trình cha mẹ nhưng không thành công:
// Trigger just before the main process end
process.stdin.end()
process.stderr.unpipe()
process.stdout.unpipe()