如何从命令行停止 spring 引导服务?
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 引导参考文档中的 Endpoints。您可以通过将以下内容添加到 application.properties
:
来启用关闭端点
endpoints.shutdown.enabled=true
当然,您需要限制对此端点的访问,否则有权访问该服务的任何人都可以发出请求并关闭应用程序。
在命令中:
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
我是 spring-boot 新手,所以请放轻松。
我需要为管理员提供一种从作业调度程序启动和停止我的 spring-boot 微服务的方法。如果我可以为服务创建 start.bat
和 stop.bat
文件,那么调度程序就可以调用它们。
如何在不终止进程的情况下从命令行停止 spring-boot 微服务?如果可能的话,我想要一个优雅的退出。
主机将是 Windows 服务器。
如果您的项目中包含 Spring Boot Actuator,您可以启用关闭端点(默认情况下未启用)。这意味着如果您向 http://yourserver.com/yourapp/shutdown 发出请求,应用程序将正常关闭。管理员可以使用标准工具(例如 curl)执行此类请求。
请参阅 Spring 引导参考文档中的 Endpoints。您可以通过将以下内容添加到 application.properties
:
endpoints.shutdown.enabled=true
当然,您需要限制对此端点的访问,否则有权访问该服务的任何人都可以发出请求并关闭应用程序。
在命令中:
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