Java 关闭 Hook 未运行

标签 java shutdown-hook

我有 Java 的产品服务。在我们的代码中,我正在创建关闭 Hook ,但是当我停止服务时,它不会一致地调用关闭 Hook 。在 5 次停止调用中,它只调用了一次 shutdown hook。

Runnable shutdownHandler = new Runnable() {

    @Override
    public void run() {

        s_log.info("Shutting down thread..");
    }

};

Runtime.getRuntime().addShutdownHook(
        new Thread(shutdownHandler, "shutdownthread"));

有人可以告诉我这不被一致调用的原因是什么吗?

最佳答案

检查以下代码:

Runnable shutdownHandler = new Runnable() {
    @Override
    public void run() {
        System.out.println("Shutting down thread..");
    }
};

Runtime.getRuntime().addShutdownHook(
        new Thread(shutdownHandler, "shutdownthread"));

如果它为您提供了预期的输出,您需要检查日志框架的文档。

关于Java 关闭 Hook 未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35901902/

相关文章:

java无法连接到jdbc

scala - Play 应用程序关闭时未调用 Stop Hook

java - 从 bat 脚本运行的 Java 应用程序上的 Windows 关闭 Hook

java - 关闭钩子(Hook)可以用于稍长的任务吗

java - CTRL-C如何与Java程序一起工作

java - 为什么 StringReader.Read() 不返回字节?

java - 使用 Java Enum 表示 BigDecimal 常量

java - 如何调用在另一个线程中运行的程序的关闭钩子(Hook)

java - 加入mapreduce

java - 在littleproxy中设置远程ip和端口