Node.JS Shutdown Hook

时间:2011-03-22 19:55:25

标签: node.js solaris kill sigterm shutdown-hook

是否可以拦截默认的kill信号并将其用作正常关闭的命令?这适用于Solaris SMF。我找到的可停止服务的最简单方法是将:kill设置为关闭脚本,然后在Java中添加关闭挂钩。在这种情况下,我想为Node.JS做。我该怎么办?

编辑:目的是

  1. 停止接收新请求。
  2. 让现有的回调几秒钟完成。
  3. 将一些信息写入stderr。
  4. @ alienhard的第一个建议是使用process.on('exit'...,但似乎我无法用这种方法完成2号。

2 个答案:

答案 0 :(得分:9)

有一个exit事件:http://nodejs.org/docs/v0.3.1/api/process.html#event_exit_

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

编辑:替代方案可能对您有用,而不是杀死进程,发送SIGUSR1(kill -s SIGUSR1)之类的信号,然后侦听此信号(请参阅发布的链接) @masylum在另一个答案中)并在完成或经过一段时间后显式终止process.exit()。

答案 1 :(得分:3)

我唯一想到的就是使用信号事件。

http://nodejs.org/docs/v0.3.1/api/process.html#signal_Events