How to stop a spring boot service from command line?
Solution 1
If you have Spring Boot Actuator included in your project, you can enable a shutdown endpoint (by default it is not enabled). This means that if you make a request to: http://yourserver.com/yourapp/shutdown, the application will shutdown gracefully. An administrator could do such a request using a standard tool such as curl.
See Endpoints in the Spring Boot reference documentation. You can enable the shutdown endpoint by adding the following to your application.properties
:
endpoints.shutdown.enabled=true
Ofcourse, you'll want to restrict access to this endpoint, otherwise anyone who has access to the service could do a request and shutdown the application.
Solution 2
In cmd:
netstat -ano | findstr :[port_on_which_app_runs]
then
taskkill /PID [PID_of_the_app] /F
Found here
Solution 3
The easiest way to kill a process using cmd is by typing this single line of command:
> kill $(lsof -t -i:port_num)
Eric
Updated on June 19, 2022Comments
-
Eric almost 2 years
I’m a spring-boot newbie, so please go easy on me.
I need to offer a way for an administrator to start and stop my spring-boot microservice from a job scheduler. If I can create
start.bat
andstop.bat
files for the service, then the scheduler could call them.How do I stop a spring-boot microservice from command line without killing the process? I'd like a graceful exit, if possible.
The host will be a Windows server.
-
Eric almost 8 yearsAnd then can I use spring security to restrict who can call the shutdown? Again, I'm a newbie.
-
Jesper almost 8 yearsYes, and as you can see in the documentation, the
shutdown
endpoint is set to "sensitive" by default, which means that it will require a username / password if security is enabled in the app. The Spring reference docs contain a lot of info on this, and there are also tutorials like this one. -
Eric almost 8 yearsThank you very much. I really appreciate it!
-
Eric almost 8 yearsNote that the shutdown request has to be sent as a POST request. GET doesn't work.