본문 바로가기
리눅스/Ubuntu

슈퍼바이저를 이용한 지속적 데몬 관리

by 베어그릴스 2024. 2. 29.
반응형

애플리케이션을 개발하고 배포 시에 데몬이 어떤 이유로 죽은 경우 바로 되살려서 데몬이 떠있는 걸 유지하고 싶은 

경우가 있습니다. 예를들어 서버에서 구동되는 프로그램들이 그렇죠. 
위의 기능을 가능하게 해주는 프로그램이 슈퍼바이저입니다.

 

일종의 안전장치를 하나 더 건다고 보시면 되겠습니다.

사람이 수동으로 떨어질 때마다 알람 설정을 해서 켜고 끄고 할 수도 있고

해당 포트를 실시간 간격으로 체크해서 자동으로 띄워주는 쉘을 만들어 놓을 수도 있습니다.

 

아래는 그러한 과정을 슈퍼바이저 매니저툴이 대신해준다고 보면 되겠습니다.

 

한 가지 확인 못해본 것은 메모리 이슈로 떨어졌을 경우 포트는 살아있지만 접속이 안 되는 경우가 있습니다.

이러한 케이스까지 슈퍼바이저가 인지하여 자동으로 재시작해주는지는 모르겠습니다.

 

1. 슈퍼바이저 설치

sudo apt-get install supervisor -y

 

2. 옵션설명

# tomcat 자동 재시작 
# [program:tomcat8] 서비스명
# command           실행할 프로그램의 경로와 명령을 지정합니다.
# autorestart       자동재시작 여부
# process_name      기본적으로 [program:tomcat8]에서 tomcat8 지정한 프로세스 이름을 사용하게 된다.
# startsecs         프로세스가 유지해야 할 시간. 기본적으로는 1초
# stopsignal        INT 프로세스 id 를 주면 해당 프로세스에 시그널을 보낼 수 있습니다
# user              tomcat 프로그램을 실행할유저 webstyle 일경우 webstyle 으로변경
# redirect_stderr   스크립트내의 에러 출력 여부
# stdout_logfile=/home/tomcat/tomcat8.5/logs/tomcat.log 로그저장할곳
# ! 반드시 directory를 지정해야됨 권한 관련 에러 때문에 500에러를 발생시킴 
# startretries =5 리트라이 횟수

 

3. 환경설정 수정

$ sudo vi /etc/supervisor/conf.d/supervisor_tomcat.conf

[program:tomcat8]
command=/home/tomcat/tomcat-8.5.99/bin/catalina.sh run
directory=/home/tomcat/tomcat-8.5.99/
autorestart=true
process_name=tomcat8
#5초
startsecs=5
stopsignal=INT
user=tomcat
redirect_stderr=true
stdout_logfile=/home/tomcat/tomcat-8.5.99/logs/tomcat.log

 

4. 수정사항 반영 및 실행

###### 사용법 ######
# 서비스 변경사항 및 업데이트
$ sudo supervisorctl reread
$ sudo supervisorctl update

# 톰캣 자동 재시작 시작
$ sudo supervisorctl start process_name명

# 상태 보기
$ sudo supervisorctl status

# 톰캣 자동 재시작 멈춤
$ sudo supervisorctl stop process_name명
# 테스트 tomcat 끄기
$ /home/tomcat/tomcat8.5/bin/shutdown.sh

 

5. 테스트

 

기존 톰켓 프로세스가 실행중이라면 shutdown 시키고 테스트 합니다.

 

 

슈퍼바이저를 이용한 위 환경설정(supervisor_tomcat.conf)에 정의한 tomcat8 실행

sudo supervisorctl start tomcat8

 

 

상태확인

sudo supervisorctl status

 

톰캣 종료 후 자동으로 재시작되는지 확인

 

반응형

'리눅스 > Ubuntu' 카테고리의 다른 글

루트 권한 없이 80 포트 실행하기  (0) 2024.02.29
형태소 분석기 설치 및 적용  (0) 2023.07.05
apache + tomcat 설치  (0) 2022.11.04
우분투 서버 22.04 설치  (0) 2022.11.03
서버모니터링  (0) 2022.08.12

댓글