我在运行的一个 Nodejs 应用程序上遇到了一个问题npm start
(它就是这样node app.js
)。
我的应用程序包含一个信号处理程序,如下所示:
process.on('SIGINT', () => {
db.disconnect().then({
process.exit(0);
}).catch(e => process.exit(1));
});
有相应的日志。在对其他文件进行一些测试之后,我注意到npm
如果第一个文件退出时间太长,则在进程上按 Ctrl-C 会触发两次 SIGINT。(尝试在示例应用程序上添加超时)。
现在我已经添加了一个计数器来检查调用是否被多次执行,但我不确定这是关于这个问题的“要走的路”。我猜测 npm 进程上的 SIGINT 预计会在某个时间范围内退出,这就是 npm 再传递一次(总是只有两次)的原因。
有没有人遇到过这个问题并找到了可行的解决方案?
谢谢!