Eric
Eric

Reputation: 153

How to stop a spring boot service from command line?

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 and stop.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.

Upvotes: 7

Views: 19162

Answers (4)

Mahesh Parab
Mahesh Parab

Reputation: 61

Starting spring version 2.3 there is support for graceful shutdown via spring property

server.shutdown=graceful

for new incoming requests the server will immediately issue 503 "Service unavailable" if any ongoing requests is yet to be processed it will for default time which we can change via below property

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

Upvotes: 0

webcrawler
webcrawler

Reputation: 89

The easiest way to kill a process using cmd is by typing this single line of command:

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

Upvotes: 1

Kaisumaro
Kaisumaro

Reputation: 31

In cmd:

netstat -ano | findstr :[port_on_which_app_runs]

then

taskkill /PID [PID_of_the_app] /F

Found here

Upvotes: 3

Jesper
Jesper

Reputation: 206796

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.

Upvotes: 6

Related Questions