'inittab'에 해당되는 글 1건

  1. 2007/11/22 리눅스 서버 hacks 100 #4 init을 사용한 지속적 데몬 실행

#4
init을 사용한 지속적 데몬 실행

특정 프로세스가 예상치 못하게 종료되었을 때 자동으로 재시작시키는 스크립트
$while : ; do echo "실행코드"; sleep 1 ; done

포그라운드일 경우 크게 문제가 되지 않으나(?) 백그라운드일 경우 문제가 매우 심각해 진다.

그리고 또한 프로세스가 비정상적인 상태가 된다면 log 분석을 하지 않는 이상 파악이 어렵다.

init을 이용하여 위의 문제들을 해결할 수 있다.

실행을 유지함과 동시에 감시하고 싶은 프로그램을 /etc/inittab 에 다음과 같이 추가한다.
zz:12345:respawn:/usr/local/sbin/my_daemon;

zz -> 식별자
12345 -> 런레벨
respawn: -> 해당 데몬이 죽었을 경우 재시작 initd man을 참조하면 다양한 옵션을 찾을 수 있음
-> 해당 데몬 실행 경로

inittab을 수정하였다면 설정을 적용하기 위해 init 에 HUP 시그널 을 보낸다.

kill -HUP 1 

만약 명령이 너무 빨리 재실행되려고 하면 init이 잠시 동안 실행을 지연시켜서 자원 독점을 못하게 할 것.

zz:2345:respawn:/bin/touch /tmp/timestamp 
이후에 /var/log/message 를 살펴보면 이유를 알 수 있음

init 의 문제점이 있다면
1. 데몬을 중지시켜야 할때 /etc/inittab 을 수정해야 한다는것
2. inittab은 반드시 root로 실행을 시켜야 한다는것 !