자바 스프링부트 종료하는 법

|

요약

스프링부트 종료하는 방법은 아주 간단합니다. 터미널을 연 뒤 프로세스를 직접 종료하면 됩니다. 아래는 이를 수행하기 위한 단계별 지침입니다.

윈도우에서 스프링부트 종료하기

netstat -ano | find "8080"

8080 포트를 먼저 찾습니다. 이 방법을 응용하면 다른 포트토 찾을 수 있게 돼요.

taskkill /pid 25948 /f

이제 pid 를 찾았으니 프로세스를 종료하면 됩니다.

맥에서 스프링 종료하기

    먼저 스프링부트 애플리케이션이 실행중인 자바 프로세스를 찾아야 합니다.
    pgrep java 명령어를 사용하여 시스템에서 실행중인 모든 자바 프로세스의 아이디를 찾을 수있습니다.

    pgrep java

    이제 프로세스 아이디를 확인했다면 종료해야 합니다.

    kill [프로세스ID]

    kill 명령어를 활용하여 특정 자바 프로세스를 종료할 수 있습니다. 스프링 부트 앱의 정확한 프로세스 ID 를 알고 계시다면 해당 ID . 를통해 프로세스를 종료할 수있습니다.

    kill `pgrep java`

    응용해서 모두 종료하는 코드를 만들어봤습니다.
    kill $(pgrep java) 와 같이 사용하는 방법도 존재합니다

    안전한 종료

    kill -SIGTERM [프로세스ID]

    안전하게 몇초 뒤에 종료하는 방법입니다 SIGTERM 신호는 프로세스에게 안전하게 종료할 수 있는 시간을 제공합니다.

    그레이스풀 셧다운(Graceful Shutdown)

    server.shutdown=graceful
    spring.lifecycle.timeout-per-shutdown-phase=30s

    스프링 부트 2.3 이상부터 안전한 종료(그레이스풀 셧다운) 을 할 수 있도록 지원하고 있습니다.
    이를 활용하면 현재 진행 중인 작업을 마무리하고 리소스를 정리한 후 애플리케이션을 종료할 수 있습니다.

    • 다음에 추가하면 됩니다
      application.properties 혹은 application.yml

    스프링에 PID 붙이기

    Boot 실행 시 pid 를 생성할 수 있습니다.
    일반적으로 jar 파일을 명시해서 실행하기 때문에 크게 필요성이 없을 수 있지만 만약 번거로움이 있다면
    해당 파일을 추가하여 개발 속도를 늘릴 수 있게 됩니다.

    spring.pid.file=server.pid 

    application.properties 파일에 PID 파일 설정을 추가합니다.

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.context.ApplicationPidFileWriter;
    
    @SpringBootApplication
    public class WebApplication {
        public static void main(String[] args) {
            SpringApplication application = new SpringApplication(WebApplication.class);
    
            // PID 파일 생성을 위한 리스너 추가
            application.addListeners(new ApplicationPidFileWriter("server.pid"));
            application.run(args);
        }
    }

    kill -15 $(cat server.pid)

    이제 pid 를 입력합니다

    참조

    답글 남기기

    이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다