当Node.js进程可以直接exit()而不触发其他信号事件(uncaughtException,SIGINT,SIGTERM ......)

 w3a00048_304 发布于 2022-12-19 18:10

我使用REDIS数据存储处理应用程序.为了保持数据完整性,我想在进程关闭时清理存储.

我创建了一个函数处理程序并将其绑定(使用process.on())来发出信号事件:uncaughtException,SIGINT,SIGTERM,SIGQUIT,它运行良好(CTRL + C,进程终止,异常......).

但我已经读过,在某些情况下,该过程可以直接退出而不会触发其他信号事件.

在这种特殊情况下的问题是process.on('exit')处理程序只能处理同步任务.

我做了不同的测试,试图以不同的方式杀死这个过程.并且(除了在Windows上使用SIGTERM)我无法确定在没有SIGINT,SIGTERM或其他事件触发的情况下直接触发process.on('exit')的情况.

所以我的问题是(在Linux系统上),在什么条件下进程可以直接退出而不会触发此事件:http://nodejs.org/api/all.html#all_signal_events?

1 个回答
  • 截至目前,读DOCUME ntation,做一些重新搜索,似乎只有四向使Node.js应用程序退出:

    process.exit(),由...处理 process.on('exit')

    接收*nix信号,可由process.on('signal_name')`处理

    有一个异常返回到事件循环,由.处理 process.on('UncaughtException')

    计算机被插入,销毁,node.js二进制文件爆炸,或者SIGKILL/kill -9,并且没有处理.

    通常会发生某人不理解来自uncaughtException的错误消息,并错误地认为它是杀死node.js的"其他东西".

    2022-12-19 18:14 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有