nodejs的process是一个全局对象,可以通过process控制程序的健壮性。
process.on('exit',function(code){
// TODO 这里可以主动释放其他资源 如zookeeper连接等
if (code === 1000) {
console.error('process:uncaughtException');
}else if (code === 1001) {
console.error('process:SIGINT');
} else if (code === 1002) {
console.error('process:SIGTERM');
} else {
console.error('process:unknown');
}
});
process.on('uncaughtException',function(e){
console.log(e);
// 异常可以选择不退出
process.exit(1000);
});
process.on('SIGINT',function () {
process.exit(1001);
});
process.on('SIGTERM',function () {
process.exit(1002);
});
- 1 process.exit(code): 退出程序 可以传递code值。
- 2 process.on('exit',Function(code)):监听当前程序的退出事件, 可以进行重复监听。
- 3 process.on('uncaughtException',Function(e)): 监听当前程序的未捕获的所有异常事件,可以进行重复监听。
- 4 process.on('SIGINT',Function()): 监听信号量为SIGINT(所有平台执行ctrl+c时发出的信号量),可以进行重复监听。
- 5 process.on('SIGTERM',Function()): 监听信号量为SIGTERM(除window之外的平台的kill信号),可以进行重复监听。