현재 필자의 회사에서 만든 서비스들을 빌드해 이용기관 서버에 원격으로 붙어 배포하던 중 궁금증이 생겨 이 포스트를 작성합니다.
이용기관의 서버에 원격접속을 통해 서버를 배포하다보면
어떤 서비스는 service.bat 를 이용해 서비스 등록 후 tomcat.exe 파일로 실행시키고(윈도우 환경)
어떤 서비스는 startup.bat 를 통해 실행 해왔습니다. 두가지의 실행방식의 차이점을 기록해보려합니다.
말그대로 배치 파일입니다.(배치에 관한 내용은 이번 포스트에서는 다루지 않겠습니다.)
Tomcat(톰캣) 의 service.bat 스크립트는 Tomcat을 Windows(윈도우) 서비스로 설치하는데 사용되는 유틸리티 스크립트로
Window 운영 체제에서 Tomcat을 백그라운드 서비스로 실행되도록 설정하도록 도와줍니다.
맞는 말입니다. startup.bat를 실행 시켜도 Tomcat이 실행됩니다.
하지만 차이점이 있는데요.
startup.bat로 Tomcat을 실행시키게 되면 Tomcat은 포그라운드에서 실행되게 됩니다.
뭐가 뭔지 잘 모르신다면...
필자의 "작업관리자"를 오픈해 보겠습니다.
위 이미지를 보시면 크게 "앱" 부분과 "백그라운드 프로세스" 부분으로 나누어져 있다는 걸 볼 수 있는데요.
"앱" 부분이 바로 포그라운드 프로세스 입니다.
눈에 보이는 프로그램이라고 생각하면 좀 이해가 되시려나요? 즉, 내가 이리저리 조작할 수 있고 내가 실행시킨 어떤 프로그램들? 이라고 생각하시면 될 것 같습니다.
그럼 "백그라운드 프로세스" 부분은?
백그라운드...뒤쪽...에서 실행된다..
즉, 내가 실행시키지 않아도 자동으로 실행되어있는 프로그램 및 서비스라고 생각하시면 될 것 같습니다.
컴퓨터를 재가동한 직후 카카오톡(설정에 따라 다르지만), 백신 프로그램, 그래픽 드라이버, 등등 여러 프로그램들이 내가 실행시키지 않아도 자동으로 실행되지는 않나요?
맞습니다 위 프로그램들은 백그라운드에서 실행되고 있는 프로그램들 입니다.
자 그럼 본론으로 돌아가서
tomcat(.exe)을 윈도우 서비스로 등록해 "백그라운드 프로세스"에서 실행되도록 한다.
윈도우 서비스 등록 방법은 이 포스트에서는 자세하게 설명하지는 않지만 간략하게 프로세스를 설명하자면
service.bat install
명령어를 입력해 서비스를 등록합니다.윈도우 + R
키를 누르게 되면 위 실행 창이 나타납니다.service.msc
를 입력 후 확인위와 비슷하게 진행 후 등록한 서비스를 실행시키게 되면 "백그라운드 프로세스"에서 실행됩니다.
추가로 다른설정(시작유형)을 통해 재부팅해도 자동으로 시작되게끔 설정할 수도 있습니다!
tomcat(.exe)을 "포그라운드 프로세스"(콘솔창)에서 실행되도록 한다.
톰캣 폴더안 startup.bat을 실행시키게 되면
위와같은 콘솔 창이 나타나게 됩니다.
위 콘솔창에서는 실시간으로 로그 및 오류메시지를 포함한 모든 Tomcat의 출력을 볼 수 있는데요.
우리는 벌써 큰 차이점 하나를 알게되었습니다.
자 좀 더 생각해봅시다. 지금 이글을 보고있는 브라우저의 우측 상단 X를 누르게 되면 어떻게 될까요?(실제로 따라하지는 마세요...ㅠ)
브라우저가 종료될 것 입니다. 종료된다는건 실행을 멈춘다는 의미...!
그렇다면 "포그라운드 프로세스"(콘솔창)에 실행되고 있는 tomcat을 종료한다면? tomcat이 종료됩니다!
즉, startup.bat 실행으로 나타난 저 위 Tomcat의 콘솔창을 종료하게 된다면? tomcat은 그 즉시 종료됩니다.
두가지의 실행방법을 정리해보았는데요.
사용 환경에 따라 적절한 실행방법을 선택하는게 중요하겠구나라고 느꼈습니다.
찾아보니 운영환경에서는 서비스등록 후 tomcat.exe파일을 사용해 실행시키고
개발환경에서는 startup.bat를 통해 포그라운드 프로세스로 실행시켜 모니터링을 많이 하는 것 같습니다.