我们有一个多线程Spring Boot应用程序,它在Linux机器上作为守护进程运行。当我尝试通过start-stop-daemon停止应用程序时,就像这样
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
发送SIGTERM信号,应用程序即将结束。但是我希望应用程序等待,直到每个线程完成它的工作。
有没有办法,如何管理收到SIGTERM信号时会发生什么?
答案 0 :(得分:15)
Spring Boot应用程序向JVM注册一个关闭钩子,以确保在退出时正常关闭ApplicationContext
。创建实现DisposableBean
的bean(或bean)或具有@PreDestroy
注释的方法。这个bean将在app shutdown时调用。
答案 1 :(得分:1)
@Evgeny提到的样本
.enc