아파치 자동재시작 스크립트 적용 시 에러
작성자 정보
- 주광욱 작성
- 작성일
컨텐츠 정보
- 2,172 조회
- 1 댓글
- 0 추천
- 목록
본문
안녕하세요? 아파치 재시작 스크립트를 적용 하여 서버를 운영 중입니다.
아파치 접속갯수가 120개 이상일 경우 아파치를 재시작하고
아파치가 안떠있을 경우 아파치를 시작 하는 스크립트를 아래와 같이 적용하여
crontab으로 1분 마다 돌리고 있습니다.
############## 재시작 스크립트 #################
#!/bin/bash
ps_cnt=`ps aux|grep httpd|wc -l`
date=$(date +%y/%m/%d-%H:%M:%S)
PID_PATH=/usr/local/apache2/logs
PID_NAME=httpd.pid
if [ $ps_cnt -gt 120 ]
then
/usr/local/apache2/bin/apachectl restart
echo "[$date] $ps_cnt apache Re-started" >> /var/log/httpd_restart_log;
sleep 3
elif [ $ps_cnt -le 3 ]
then
pgrep -x httpd | xargs kill -9
sleep 2
rm -rf $PID_PATH/$PID_NAME
/usr/local/apache2/bin/apachectl start
echo "[$date] $ps_cnt apache started" >> /var/log/httpd_restart_log;
fi
###################################################
그런데 위의 스크립트가 정상적으로 작동할 경우 httpd error log를 보면
[Fri May 29 04:15:24 2009] [notice] SIGHUP received. Attempting to restart
[Fri May 29 04:15:25 2009] [notice] Apache configured -- resuming normal operations
와 같이 출력 되면서 정상적으로 재시작이 됩니다.
그러나 에러가 발생 할 경우 120개 이상이 될 경우 재시작이 되지 않는 경우가 발생 합니다.
그래서 위의 스크립트 중 elif절을 추가하여 재시작이 않되어 아파치가 실행 되지 않을 경우
아파치를 강제로 죽이고 시작하는 스크립트를 추가 하였습니다. 그러나 정상적으로
아파치가 시작 되었지만 DB와 접속이 않되는 현상이 발생 합니다.
에러메세지는 다음과 같습니다.
[Fri May 29 23:12:12 2009] [notice] SIGHUP received. Attempting to restart
can't access external Global Session Server: [0][name lookup timed out]
[Fri May 29 23:13:04 2009] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Fri May 29 23:13:04 2009] [error] [client 125.134.225.218]
[Fri May 29 23:13:04 2009] [notice] Apache configured -- resuming normal operations
이런 경우 재시작 스크립트의 문제인지? 아니면 아파치와 PHP의 설정의 문제인지
정말 감이 오지 않습니다. 위의 스크립트가 정상적이지 않다면 120개가 넘어 갈 경우
항상 오류가 발생 해야 하는데 잘 적용되어 실행 되다가도 간혹 저런 문제가 발생하기
때문에 에러난 후에 대처하기가 힘드네요??
과연 어떤 문제 일까요?? 고수님들의 고견 기다리겠습니다.
관련자료
-
이전
-
다음
황이님의 댓글
- 황이
- 작성일
SSL세션 에러라구....
자동으로 하지를 않아서 잘모르겠네요...
일단 명령어가요..
/usr/local/apache/bin/apachectl -D SSL -k start
시작할 때는 이거일꺼구요...
중지할 때 명령어는
killall httpd
이었습니다.
좀 곰곰히 생각해보면, SSL 이건 아파치서버에서 어떻게 도는지 생각해보시면 될듯 합니다.