【发布时间】:2014-12-20 06:27:01
【问题描述】:
在 Spring Boot 文档中,他们说“每个 SpringApplication 都会向 JVM 注册一个关闭挂钩,以确保 ApplicationContext 在退出时正常关闭。”
当我在 shell 命令上单击ctrl+c 时,应用程序可以正常关闭。如果我在生产机器上运行应用程序,我必须使用命令
java -jar ProApplicaton.jar。但是我不能关闭shell终端,否则会关闭进程。
如果我运行像nohup java -jar ProApplicaton.jar & 这样的命令,我不能使用ctrl+c 优雅地关闭它。
在生产环境中启动和停止 Spring Boot 应用程序的正确方法是什么?
【问题讨论】:
-
根据您的配置,将应用程序的 PID 写入文件。您可以向该 PID 发送终止信号。另请参阅this issue 中的 cmets。
-
我应该使用哪个信号,我不认为 kill -9 是个好主意,对吧?
-
这就是为什么我把你指向那个线程......但是像
kill -SIGTERM <PID>这样的东西应该可以解决问题。 -
用 pid 杀死,没有 -9
-
kill $(lsof -ti tcp:
) -- 如果您不想使用执行器并需要快速杀死
标签: linux spring spring-boot