강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
죽은 데몬 자동 실행
조회 : 15,308  


죽은 데몬 자동 실행



0. 개요
  서버 관리를 하다 보면, 죽으면 안되는 데몬이 갑자기 죽는 경우가 있다. 이럴때 서버 앞에서 작업을 하고 있거나, 모니터링을 하고 있는 경우면 다시 데몬을 띄워 주면 되지만, 그렇지 않은 경우는 죽었는지 살았는지 알지도 못하고, 설령 알고있다고 하더라도 서버로 접속이 가능한 PC를 찾아 움직여야 한다.
  이런 경우를 대비해 데몬이 죽었으면 재 실행 시켜 주는 스크립트를 만들어 보겠다.


1. 준비
  특별히 툴을 설치하거나, 라이브러리를 다운 받는 등의 준비 작업을 없다.
  다만, 약간의 프로그래밍 지식만 있으면 누구나 쉽게 만들 수 있고 또, 쉽게 응용이 가능하다.


2. 스크립트 작성
  예) 아파치 데몬이 죽었을 경우 자동 재 시작

vi /root/check.sh

#!/bin/bash

http="`pgrep http  | wc -l`"

if [ "$http" -eq "0" ] ; then
        /usr/local/apache/bin/apachectl restart
fi

  위 스크립트는 아주 간단하다. http라는 변수에 pgrep http로 아파치 프로세서를 검색 한다음 wc -l로 카운터를 세어 넣는다.
  그리고, if문에서 http변수에 들어 있는 값이 0과 같으면 아파치를 리스타트 한다.


3. 클론에 등록해서 1분마다 체크 하기
  위 스크립트를 만들었다고 해서 끝이 아니다. 왜냐 하면 우리가 원하는 것은 자동을 데몬을 체크해서 그 데몬이 죽었을 경우 해당 데몬을 다시 시작 해주는 것을 원하고 있기 때문이다.
  이럴때 cron을 이용하자, 물론 매 초 체크 하는것은 안되지만, 1분 단위로는 가능하다.

  예) 클론에 1분마다 아파치 데몬이 죽었을 경우 자동 리스타트 되는 스크립트 실행

crontab -e

* * * * * su - root -c '/root/check.sh >&  /dev/null'

  위와 같이 한줄만 추가 해주면 해당 스크립트는 1분마다 실행 되며, 실행 되었을때 아파치 데몬이 죽어 있다면
자동으로 재 시작 한다.
  ps. 클론에 위와 같이 등록 할경우 미리 check.sh 파일의 퍼미션을 700으로 바꿔야 한다.


4. 마무리
  아주 간단한게 몇줄의 타이핑 만으로, 실용적인 스크립트가 만들어 졌다. 조금만 응용하면, 더 괜찮은 스크립트가 되고, 괜찮은 프로그램이 되어, 서버관리자의 짐을 덜어 줄것이다.




[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1730


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
이우승
1. 이름 : 이우승
2. E-mail : lws0406 골뱅이 suidc.com
3.소속 : (주)수퍼유저코리아