Spring

[springboot] ApplicationPidFileWriter 란?

우주유령 2023. 8. 3. 15:50
728x90
반응형

Why?

외장 톰캣으로 어플리케이션을 재구동한다면 shutdown.sh를 실행하면되지만,

내장 톰캣(스프링 부트) 애플리케이션을 재구동한다면 일반적으로 서버 구동시 pid를 미리 저장해두고 종료가 필요한 시점에해당 pid값으로 kill한다.

 

바로 이 pid를 만들어주는 방법 중에 하나가 ApplicationPidFileWriter객체의 사용이다.

 

자동 배포를 할때, 자동으로 재구동하기위해 pid를 설정해준다.

 

PID 만들기

PID 생성 경로 지정

spring:
  pid:
    file: test-app.pid # PID 파일 생성 경로 지정

 

Main 메소드 ApplicationPidFileWriter 생성

@SpringBootApplication 을 적용한 메인 Application의 main()메소드에서 아래와같이 ApplicationPidFileWriter객체를 생성해서 addListeners() 로 리스너에 달아준다.

public static void main(String[] args) {
    SpringApplication app = new SpringApplication(Application.class);
    app.addListeners(new ApplicationPidFileWriter()); // ApplicationPidFileWriter 설정
    app.run(args);
}

 

728x90
반응형