Close readable stream to FIFO in NodeJS
我正在像这样在nodejs中创建到Linux fifo的可读流:
1 | var stream = FS.createReadStream('fifo'); |
一切正常,我可以从fifo接收数据。
我的问题是我希望有一种方法可以轻轻地关闭软件,因此我需要以某种方式关闭此流。
呼叫
1 | process.exit(); |
没有任何作用,因为流被阻塞。
我还尝试通过调用未记录的方法
我知道我可以使用
难道没有更好的方法来实现这一目标吗?
您可以尝试以下最小示例来重现我的问题:
1 2 3 4 5 6 7 8 9 | var FS = require('fs'); console.log("Creating readable stream on fifo ..."); var stream = FS.createReadStream('fifo'); stream.once('close', function() { console.log("The close event was emitted."); }); stream.close(); stream.destroy(); process.exit(); |
使用
如何修改以上代码以正确关闭软件?
显式写入命名管道将取消阻止读取操作,例如:
1 2 | require('child_process').execSync('echo""> fifo'); process.exit(); |