管道传输过程终止

时间:2015-01-19 21:27:16

标签: node.js unix process pipe

我有一个永远运行的节点CLI程序,它应该在进程终止之前打印摘要。我已经注册了这些事件,以便在终止前采取行动:

process.on("exit", end);
process.on("SIGINT", end);
process.on("SIGQUIT", end);
process.on("SIGTERM", end);

在使用node app启动时运行以上回调,但是当进程像node app | tee file那样管道传输时不行,在这种情况下,我不会收到SIGINT,也不会收到{{1}回调运行。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

通过检查process.stdout._type === "pipe"解决了这个问题,在这种情况下,我输出到stderr而不是stdout。不是一个漂亮的解决方案,但它可以满足我的需求。