데몬의 가동관리 daemontools

데몬이 비정상 종료했을 경우
daemontools
:데몬 프로세스의 시작, 종료, 재시작, 프로세스가 죽었을 경우의 자동시작과 같은 데몬 프로세스 관리를 수행하기 위한 프로그램군이다.

deamontools를 사용하는 이유
1. 프로세스가 죽었을 경우에 자동적으로 재시작해준다.
2. 손쉽게 데몬을 만들 수 있다.
 - 제어터미널에서 분리한다.
 - Current Workin Directory(cwd)를 루트(/)로 변경한다.
 - 표준입출력 /dev/null(혹은 기타 파일)로 리다이렉트 한다.

데몬이 되기 위한 조건
foreground에서 동작하기

데몬의 관리방법
데몬의 신규작성
- /etc/deamon -> 데몬들을 위치시킬 디렉토리
- /etc/daemon/xxxd -> xxxd를 위한 디렉토리

샘플코드
#! /bin/sh
exec 2>&1
exec \
  setuidgid USERNAME \
  env - -PATH="/usr/local/bin:$PATH \
  envdir ./env \
 /usr/local/bin/xxxd

line 2: 표준에러출력을 표준출력으로 리다이렉트한다.
line 3: 이 프로세스를 이후에 오는 명령으로 대체한다.
line 4: 유효 사용자를 변경한다.
line 5: 환경변수를 초기화하고 필요한 환경변수를 설정한다.
line 6: env라는 디렉토리에 파일이 있을 경우는 이를 참조해서 환경변수를 설정한다.
line 7: 데몬프로그램을 실행한다.

시그널 전송
 svc의 옵션
 시그널
 -p STOP
 -c CONT
 -h HUP
 -a ALRM
 -i INT
 -t TERM
 -k KILL

keepalived
지접제작한 감시 스크립트

daemontools의 팁
의존하는 서비스의 시작순서 제어, 편리한 셸 함수

의존하는 서비스의 시작순서 제어

편리한 셸함수
- daemonup
- daemondown
- daemonstat

댓글

이 블로그의 인기 게시물

javascript ===, ==, >=, <=연산자

SQL oracle 내장함수[문자열 처리]

java 입출력2