我想在服务器崩溃时运行一段代码。但是,我能想到的唯一方法是写一个客户端,检查是否有连接打开。
有没有办法在实际服务器上编写一些代码,在服务器关闭之前运行?
答案 0 :(得分:1)
关闭和崩溃是两件截然不同的事情。您可以让shutdownHook用于JVM标准退出,但对于崩溃的情况没有任何意义,这意味着+ - 核对JVM。
DOC说:
在极少数情况下,虚拟机可能会中止,即停止 在没有干净地关闭的情况下跑步。这发生在虚拟时 机器在外部终止,例如使用SIGKILL信号 在Unix上或Microsoft Windows上的TerminateProcess调用。虚拟 例如,如果本机方法出错,机器也可能会中止 破坏内部数据结构或尝试访问 不存在的记忆。如果虚拟机中止则无法保证 可以判断是否会运行任何关闭挂钩。
如果关闭钩子不够,您需要在外部监控应用程序。