我有一个永远运行的节点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}回调运行。有什么建议吗?
答案 0 :(得分:0)
通过检查process.stdout._type === "pipe"
解决了这个问题,在这种情况下,我输出到stderr
而不是stdout
。不是一个漂亮的解决方案,但它可以满足我的需求。