是否可以拦截默认kill
信号并将其用作正常关闭的命令?这适用于 Solaris SMF。我发现拥有可停止服务的最简单方法是设置:kill
为关闭脚本,然后在 Java 中添加关闭挂钩。在这种情况下,我想为 Node.JS 做这件事。我该怎么做?
编辑:目的是
- 停止接收新请求。
- 给现有的回调几秒钟来完成。
- 将一些信息写入stderr。
@alienhard 的第一个建议是使用process.on('exit'...
,但似乎我无法用这种方法完成第二个。
是否可以拦截默认kill
信号并将其用作正常关闭的命令?这适用于 Solaris SMF。我发现拥有可停止服务的最简单方法是设置:kill
为关闭脚本,然后在 Java 中添加关闭挂钩。在这种情况下,我想为 Node.JS 做这件事。我该怎么做?
编辑:目的是
@alienhard 的第一个建议是使用process.on('exit'...
,但似乎我无法用这种方法完成第二个。
有一个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() 显式终止。
我唯一想到的是使用信号事件。
http://nodejs.org/docs/v0.3.1/api/process.html#signal_Events