Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
LOG.info("Graceful shutdown RMI Server,rmi info:%s", distributedServer);
System.out.println("Graceful shutdown RMI Server,rmi info:" + distributedServer);
LOG.info("Shutdown hook complete");
System.out.println("Shutdown hook complete");
}
});
以下两类事件都会响应关闭钩子
1. 程序正常退出,这发生在最后的非守护线程退出时,或者在调用 exit(等同于 System.exit)方法时。或者,
2. 为响应用户中断而终止 虚拟机,如键入 ^C;或发生系统事件,比如用户注销或系统关闭。
ps:window是不支持关闭钩子的