在应用程序崩溃时运行代码

时间:2014-07-03 10:24:19

标签: java

我想在服务器崩溃时运行一段代码。但是,我能想到的唯一方法是写一个客户端,检查是否有连接打开。

有没有办法在实际服务器上编写一些代码,在服务器关闭之前运行?

1 个答案:

答案 0 :(得分:1)

关闭和崩溃是两件截然不同的事情。您可以让shutdownHook用于JVM标准退出,但对于崩溃的情况没有任何意义,这意味着+ - 核对JVM。

DOC说:

  

在极少数情况下,虚拟机可能会中止,即停止   在没有干净地关闭的情况下跑步。这发生在虚拟时   机器在外部终止,例如使用SIGKILL信号   在Unix上或Microsoft Windows上的TerminateProcess调用。虚拟   例如,如果本机方法出错,机器也可能会中止   破坏内部数据结构或尝试访问   不存在的记忆。如果虚拟机中止则无法保证   可以判断是否会运行任何关闭挂钩。

如果关闭钩子不够,您需要在外部监控应用程序。