실행 중인 Spring Boot pid 파일 생성

2020. 9. 4. 16:27 Spring Framework/Spring boot

토이 프로젝트를 서버에 배포한 후 기존에 실행되던 spring boot 애플리케이션을 죽이고(kill) 재실행하기 위해 pid를 이용했다.

  1. 애플리케이션 배포
  2. 기존 실행되던 애플리케이션 종료
  3. 배포된 애플리케이션 실행

무식한 방법으로 기존에 실행하던 애플리케이션을 죽이기로 했다. kill 하기 위해서 pid(process id)가 필요했다. 그래서 Spring boot 애플리케이션 실행 시 실행된 애플리케이션의 pid를 생성하는 방법을 찾아봤다. 쉽다.

public static void main(String[] args) {
    SpringApplicationBuilder builder = new SpringApplicationBuilder(BookUPApplication.class);
    builder.build().addListeners(new ApplicationPidFileWriter("./bin/shutdown.pid"));
    builder.run();
}

아마 spring boot를 사용하면 대부분 main method를 통해서 embedded WAS를 실행할 것이다. 이때 ApplicationPidFileWriter 클래스를 사용해 pid를 생성해주면 된다. pid가 기록된 파일 경로만 지정해주면 끝.

출처 : https://blog.woniper.net/363?category=699184