我只是想分叉一個簡單的子進程,並讓IPC通道保持打開狀態,但由於某種原因它會立即退出。爲什麼分叉的子進程在我分叉後立即退出?
在parent.js:
var child = require('child_process').fork('./child.js');
child.on('hi', function() {
console.log("Hi");
});
child.on('exit', function() {
console.log("Exited");
});
child.send('hello');
在child.js:
process.on('hello', function() {
process.send('hi');
});
我得到 「已退出」 立即打印到控制檯,從來沒有得到一個 '嗨'。然後,如果我繼續嘗試發送到子進程,則會出現通道關閉錯誤。
我做錯了什麼?
我覺得這是發生,因爲你的子進程結束。子進程中的某些東西需要保持進程運行。 – chris
我試着添加一個垃圾'setInterval()'讓它保持活着,並且仍然沒有骰子 – Joey
嘗試'process.stdin.resume();' – chris