리눅스 데몬 제어
# ntsysv
# setup - 시스템 서비스
어떤 서비스를 자동으로 실행시켜 주겠는 가를 설정하거나 보기
chkconfig
chkconfig를 사용하면 시스템을 부팅할 때 런레벨에 따라 자동으로 실행되는 데몬들을 확인, 추가, 수정
# chkconfig option 데몬 상태
:: option은
--level 적용할 런레벨을 선택
--add 데몬 추가
--del 데몬 삭제
--list 현재 데몬들의 목록출력
ex)
# chkconfig --list
전체나옴 (뒤에 | more 옵션으로 화면나누어 보기 가능)
# chkconfig --list 데몬d
데몬d 데몬에 대해서만 나옴
# chkconfig --level 2345 데몬d on
데몬d가 레벨 2,3,4,5에서 활성화 된다.
service
현재 실행중인 데몬을 제어하려면 service 명령어나
/etc/rc.d/init.d 에 있는 실행스크립트를 이용하여 제어할 수 있다.
# service 데몬 상태
상태는 start ,stop, restart, status 이다.
ex) service 데몬d status
데몬d의 서비스 상태를 보여준다.
----------------------------------------------------------------------------------------------------------------
죽은 데몬 자동 실행
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으로 바꿔야 한다.
'보안 > 서버,보안 기본' 카테고리의 다른 글
도커 (등장배경, 의미, 주요 키워드, 사용) (0) | 2022.03.02 |
---|---|
블록암호 (0) | 2021.12.17 |