node.js - Killall 上的 NodeJS 关闭钩子(Hook)

标签 node.js hook shutdown

我正在尝试将一些关闭功能绑定(bind)到我的nodejs应用程序(版本0.8.12)。由于我正在生成大量子进程并在分布式环境中工作,因此我目前正在通过

终止应用程序
var n = spawn('killall', ['node']);

问题是,显然 on('exit', ...) 逻辑不再起作用,实际上我有这样的东西:

process.on('exit', function() {
    if(exit_cb)
        exit_cb()
    else
        console.log('About to exit.');
});  

每当我终止应用程序时它都不会触发。

有没有办法使用 killall 命令添加关闭钩子(Hook),或者我应该找到另一种方法来终止我的子进程以使钩子(Hook)正常工作?

谢谢

最佳答案

您需要监听 killall 默认发送的 SIGTERM 信号。但您还需要在所有作业完成后手动停止进程。

process.on('SIGTERM', function() {
    if(exit_cb) {
        exit_cb();
        process.exit();
    } else {
        console.log('About to exit.');
        process.exit();
    }
});  

关于node.js - Killall 上的 NodeJS 关闭钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13395623/

相关文章:

windows - 无需构建即可在 Windows 上获取 node-gyp 依赖模块

php - 保存帖子并添加帖子元执行两次

c# - 如何将 C# dll 注入(inject)另一个进程

java - Spring Boot 2.3 Liveness Probe 功能在正常关闭时失败

node.js - Emacs Node REPL 奇怪的行为

javascript - 我可以向我的 promise 回调添加一个参数吗?

javascript - AngularJS 使用 Express Server 进行路由

liferay - 如何在liferay中为自定义实体创建监听器?

java - 选择线程池中要关闭的线程

按下登录按钮后 Ubuntu 18.04 关机