首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Process.on(“SIGINT”多终端信号)

Process.on(“SIGINT”多终端信号)
EN

Stack Overflow用户
提问于 2017-10-24 11:03:02
回答 2查看 8.2K关注 0票数 17

我有这样的节点代码,它可以检测到Ctrl+C按下时会在节点应用程序退出之前做一些事情。

代码语言:javascript
复制
process.on('SIGINT', function() {
    /* DO SOME STUFF HERE */

    process.exit()
})

现在可以使用了,但我想在此过程中添加其他终止信号,以便当Ctrl+C、Node退出或服务器重新启动或关闭或任何其他原因节点应用程序退出触发终止信号并调用此进程并在退出之前在数据库中执行操作……

我需要补充的终止信号是:

代码语言:javascript
复制
SIGTERM
SIGINT
SIGQUIT
SIGKILL

所以我想如果有可能的话:

代码语言:javascript
复制
 process.on('SIGINT', 'SIGTERM', 'SIGQUIT', 'SIGKILL', function() {
        /* DO SOME STUFF HERE */

        process.exit()
 })

因此,为了传递多个终止信号来处理函数,我在上面添加了这样的函数,但它不是work...how,这可以在节点js中完成吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-24 11:37:28

最简单的方法:

代码语言:javascript
复制
['SIGINT', 'SIGTERM', 'SIGQUIT']
  .forEach(signal => process.on(signal, () => {
    /** do your logic */
    process.exit();
  }));
票数 22
EN

Stack Overflow用户

发布于 2021-03-15 12:18:59

我宁愿和你一起去

代码语言:javascript
复制
/**
 * Do stuff and exit the process
 */
function signalHandler() {
    // do some stuff here
    process.exit()
}

process.on('SIGINT', signalHandler)
process.on('SIGTERM', signalHandler)
process.on('SIGQUIT', signalHandler)

因为风格和清晰的原因而不是循环

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46908853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档