process.on('SIGINT'多个终止信号

时间:2017-10-24 11:03:02

标签: node.js

我有这个节点代码,用于检测按下Ctrl + C时是否在节点app退出之前做了一些事情

process.on('SIGINT', function() {
    /* DO SOME STUFF HERE */

    process.exit()
})

现在这有效,但我想在此过程中添加其他终止信号,这样当Ctrl + C,节点应用程序退出或服务器重新启动或关闭或任何其他原因节点应用程序退出触发终止信号并调用此过程和在退出之前在数据库中做东西...

我需要添加的终止信号是:

SIGTERM
SIGINT
SIGQUIT
SIGKILL

所以我想到是否可以这样做:

 process.on('SIGINT', 'SIGTERM', 'SIGQUIT', 'SIGKILL', function() {
        /* DO SOME STUFF HERE */

        process.exit()
 })

所以要将多个终止信号传递给处理函数..我上面添加了如上所述但它不起作用......如何在节点js中完成?

2 个答案:

答案 0 :(得分:9)

最简单的方法:

['SIGINT', 'SIGTERM', 'SIGQUIT', 'SIGKILL']
  .forEach(signal => process.on(signal, () => {
    /** do your logic */
    process.exit();
  }));

答案 1 :(得分:3)

我宁愿去

Uncaught Error: Style is not done loading
    at r._checkLoaded (mapbox-gl.js:33)
    at r.addSource (mapbox-gl.js:33)
    at n.addSource (mapbox-gl.js:33)
    at t.<computed> [as addSource] (mapFactory.js:1121)
    at script.js:59**

出于风格和清晰度的原因