首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过start-stop-daemon正确关闭Spring Boot应用程序

如何通过start-stop-daemon正确关闭Spring Boot应用程序
EN

Stack Overflow用户
提问于 2016-04-18 18:27:39
回答 2查看 23.7K关注 0票数 11

我们有一个多线程的Spring Boot应用程序,它在Linux机器上作为守护进程运行。当我尝试像这样通过start- stop -daemon停止应用程序时

代码语言:javascript
复制
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME

发送SIGTERM信号,应用程序立即结束。但是,我希望应用程序等待,直到每个线程完成它的工作。

当收到SIGTERM信号时,有没有办法,如何管理发生的事情?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-18 18:59:51

Spring Boot应用程序向JVM注册一个关闭钩子,以确保ApplicationContext在退出时优雅地关闭。创建一个或多个实现DisposableBean或具有@PreDestroy注释的has方法的bean。此bean将在应用程序关闭时调用。

http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-application-exit

票数 18
EN

Stack Overflow用户

发布于 2018-11-19 15:32:32

@Evgeny提到的示例

代码语言:javascript
复制
@SpringBootApplication
@Slf4j
public class SpringBootShutdownHookApplication {

  public static void main(String[] args) {
    SpringApplication.run(SpringBootShutdownHookApplication.class, args);
  }

  @PreDestroy
  public void onExit() {
    log.info("###STOPing###");
    try {
      Thread.sleep(5 * 1000);
    } catch (InterruptedException e) {
      log.error("", e);;
    }
    log.info("###STOP FROM THE LIFECYCLE###");
  }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36691355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档