[英]How to stop a spring boot service from command line?
我是 spring-boot 新手,所以请放轻松。
我需要为管理员提供一种从作业调度程序启动和停止我的 spring-boot 微服务的方法。 如果我可以为服务创建start.bat
和stop.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.