最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

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

IT培训 admin 9浏览 0评论

当我在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'实际终止程序。

当我在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. 暂无评论