我正在编写集成测试,该测试在工作期间启动多个服务器。我需要确保在任何可能的情况下,它们都会在测试后关闭,包括使用 IDE 手动测试停止。有办法实现吗?
最佳答案
您可以通过注册 Shutdown Hook 来覆盖几乎所有停止/停止场景:
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
System.out.println("Gracefully shutting down the application/test");
}
});
但是,如果有人发出kill -9
,那么即使 shutdownHook 也不会捕获,因为该信号由操作系统处理,该信号会杀死/中止进程,甚至无需再次向其发送控制权.
关于java - 测试手动停止后如何执行逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42530479/