最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

当我在nodejs中具有自定义process.on('exit')时,端口未释放

运维笔记admin12浏览0评论

当我在nodejs中具有自定义process.on('exit')时,端口未释放

当我在nodejs中具有自定义process.on('exit')时,端口未释放

当我通常使用Ctrl + c(mac)停止节点进程时,该进程将被杀死并释放端口。当我使用process.on('SIGINT')时,该进程不会自动终止,我必须在端口中手动终止该进程。为什么会这样?我会覆盖执行中的任何默认退出代码段吗?

process.on('SIGINT', (code) => {
    console.log(`About to exit with code: ${code}`);
});
回答如下:

按照Node's documentation:

'SIGTERM''SIGINT'在非Windows平台上具有默认处理程序,它们在退出代码128 + signal number之前会重置终端模式。 如果这些信号之一已安装侦听器,则将删除其默认行为(Node.js将不再退出。)>

所以是的,您正在覆盖默认行为。如果-当-处理完信号后,可以在process.exit()上的可能侦听器运行之后,调用'exit'实际终止程序。

发布评论

评论列表(0)

  1. 暂无评论