2018년 4월 19일 목요일

apache 기동,프로세스확인 스크립트

아파치를 컴파일 하고 설치하면 아파치를 기동해야 한다.

리눅스 가정하에
cd $APACHE_HOME/bin 에서
기동시 ./apachectl start
종료시 ./apachectl stop
이런 식으로 기동하고 종료한다.

하지만 프로세스를 ps -ef | grep httpd 이런식으로 확인 한 결과 안들경우 로그를 확인해야한다.
이런 번거로운을 해결하기 위해서 스크립트를 작성했다

#!/bin/sh
SERVER_NAME=`basename /opt/web/web_11`
#echo "$SERVER_NAME Server [NAME=$SERVER_NAME]"

PID=`ps -ef|grep httpd|grep $SERVER_NAME| egrep -v "grep|log"|awk '{print $1,  $2}'`
#echo $SERVER_NAME Server [Process ID=$PID]

LISTEN_PORT=`sudo netstat -an | grep :80 | grep LISTEN|awk '{print $4}'`
#echo "$SERVER_NAME Server [LISTEN_PORT=$LISTEN_PORT]"

if [ -z "$PID" ]; then
          if [ -z "$LISTEN_PORT" ]; then

            sudo sh ./apachectl -k start;
            echo "###########################################"
            echo "$SERVER_NAME Server Started..."
            echo "###########################################"

    else
            echo "###########################################"
            echo "$SERVER_NAME already in use [$LISTEN_PORT] PORT..."
            echo "###########################################"
    fi

else
    echo "######################################################"
    echo "$SERVER_NAME Server is already RUNNING..."
    echo "######################################################"
fi


아파치는 프로세스가 있거나 혹은 포트를 리슨하고 있는 중에는 기동이 되지 않는다
if을 이용해서 체크한 기동하는 스크립트다.

또한 프로세스 확인 하는것도 매번 ps -ef | grep httpd 를 치기 번거로워서 스크립트로 작성했다

SERVER_NAME=`basename /opt/web/web_11`
echo ""
ps -ef|grep httpd|grep $SERVER_NAME|egrep -v "grep"|awk '{print $1,$2,$5,$8,$10,$12}'
echo ""

댓글 없음:

댓글 쓰기