繁体   English   中英

如何从命令行停止 Spring Boot 服务?

[英]How to stop a spring boot service from command line?

我是 spring-boot 新手,所以请放轻松。

我需要为管理员提供一种从作业调度程序启动和停止我的 spring-boot 微服务的方法。 如果我可以为服务创建start.batstop.bat文件,那么调度程序可以调用它们。

如何在不终止进程的情况下从命令行停止 spring-boot 微服务? 如果可能的话,我想要一个优雅的退出。

主机将是 Windows 服务器。

如果项目中包含 Spring Boot Actuator,则可以启用关闭端点(默认情况下未启用)。 这意味着,如果您向http://yourserver.com/yourapp/shutdown发出请求,应用程序将正常关闭。 管理员可以使用标准工具(例如 curl)执行此类请求。

请参阅 Spring Boot 参考文档中的端点 您可以通过将以下内容添加到application.properties来启用关闭端点:

endpoints.shutdown.enabled=true

当然,您需要限制对该端点的访问,否则任何有权访问该服务的人都可以发出请求并关闭应用程序。

在 cmd 中:

netstat -ano | findstr :[port_on_which_app_runs]

那么

taskkill /PID [PID_of_the_app] /F

这里找到

使用 cmd 终止进程的最简单方法是键入以下单行命令:

> kill $(lsof -t -i:port_num)

从 spring 2.3 版开始,支持通过 spring 属性正常关闭

server.shutdown=优雅

对于新的传入请求,如果有任何正在进行的请求尚未处理,服务器将立即发出 503“服务不可用”的默认时间,我们可以通过以下属性进行更改

spring.lifecycle.timeout-per-shutdown-phase=1m

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM