参考1

    ShutdownHook 就是一个 Thread 对象.
    在正常关闭应用时, JVM 会调用所有注册的 ShutdownHook, 即, 在退出 JVM 前, 运行一下 Hook 线程.

    不是所有情况都会触发 ShutdownHook!

    • kill -9 不会触发
    • kill -15 会触发


    要注意第三方的 ShutdownHook 是否对自己的 ShutdownHook 产生影响, 比如, dubbo 就有自己的 ShutdownHook.

    image.png