[Jenkins/window] 톰캣 자동 재실행

카테고리 없음 2020. 9. 21. 13:51 Posted by 생각하는로뎅
반응형

1. 사용 목적

 

  젠킨스가 프로젝트를 빌드마다, 톰캣 메모리가 계속해서 증가되는 현상이 나타났다. 그로인해 out of memory 오류가 발생하는 원인이 되었다.

 

  지속적으로 다른 개발자가 젠킨스 빌드를 할텐데, 메모리 때문에 톰캣을 수동으로 내렸다가 올릴 수는 없었다. 그래서, 젠킨스 스크립트로 해결하게 되었다.

 

  운영에서는 어떻게 쓰는지 모르겠지만, 개발에서는 임시방편으로 이렇게 쓰면 좋을듯하다.

 

 

2. 이슈 사항

 

  1) 젠킨스가 스크립트 실행 후, 내부에서 실행된 톰캣이 자꾸 종료되었다. 실제로 스크립트 종료 후, 내부에서 실행된 프로세스를 제거한다고 한다. 그래서 String parameter으로 BUILD_ID를 추가하여, 톰캣 프로세스가 종료되지 않도록했다.

 

  2) 위 방법으로 프로세스가 죽지는 않았지만, 스크립트 종료 후, exit 1 이 자동으로 실행되면서 톰캣이 정상 작동하지 못한 현상을 발견했다. 그래서 마지막에 exit /b 0 으로 우회했다.

 

 

3. 사용법

 

1) 이 빌드는 매개 변수가 있습니다. 선택 -> 매개변수 추가 클릭

 

 

2)  String Parameter 선택

 

 

3) 아래와 같이 셋팅

 

 

#매개변수명
  BUILD_ID

#Default Value
  dontKillMe C:\톰캣 경로\bin\startup.bat;

 

4) Build -> Add build step

 

 

5) Excute Windows batch command 선택

 

 

6) 아래와 같이 셋팅

#  톰캣 종료
cmd /c E:\hpy\bin\shutdown.bat

# 10초 대기
waitfor SomethingThatIsNeverHappening /t 10 2>NUL

# 톰캣 실행
cmd /c E:\hyp\bin\startup.bat

# 100초 대기 (100초 동안 대기, 그동안 톰캣 실행)
waitfor SomethingThatIsNeverHappening /t 100 2>NUL

# 스크립트 종료 후, 톰캣 종료 방지
exit /b 0

 

반응형