在我的工作文件中,我监听数据回调。 someLib
是 Node 串口。
process.on('message', function(msg) {
someLib.on('data', function(data){
console.log('some data');
process.send(data);
});
});
这打印
some data
Error: channel closed
但是
process.on('message', function(msg) {
process.send('foobar');
});
工作正常。这很奇怪,但有时第一个代码示例有效,所以 channel 关闭错误随机出现。
来自 http://nodejs.org/api/child_process.html#child_process_event_error我得到错误被触发的信息
Sending a message to the child process failed for whatever reason.
什么是“无论什么原因”?有什么想法吗?
最佳答案
问题是当父进程被杀死时, fork 的子进程没有正确关闭。这导致多个幽灵进程导致 channel 关闭错误。
我连接到 SIGHUP 并优雅地杀死了它们。现在一切正常。
关于javascript - Node 子进程, channel 在 process.send 上关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24110460/