본문 바로가기

프로그래밍(TA, AA)/스크립트

[쉘스크립트] Agent 시작/중지 스크립트

was서버에 웹어플리케이션을 띄우고 문자전송용 sms전송 agent도 함께 띄어져있습니다.

쉘스크립트 명령어 한칸 띄고 옵션을 입력하면 관련되는 해당 작업을 수행하는 쉘스크립트 입니다.

#!/bin/sh

PROCESS=smsagent
APP_HOME=/svc/service/transferAgent
JAVA=/svc/service/jdk1.7.0_67/bin/java

export LANG=ko_KR.euckr

CLASSPATH= :$APP_HOME/conf
for i in `ls $APP_HOME/lib/*.jar`
do
    CLASSPATH=${CLASSPATH}:${i}
done

if [ $# -eq 1 ]
then
    echo $1
elif [ $# -eq 2 ]
then
    echo $1
    echo $2
else
    echo "usage : agent.sh start/stop/kill/setup/enc"
    echo "          start : START agent"
    echo "          stop : STOP agent"
    echo "          kill : KILL agent immediately"
    echo "          setup : Check Up Server & DBMS Connection."
    echo "          Encrypt agent Password & DBMS Password."
    exit
fi

if [ $1 = "start" ]
then
        count=$(ps -ef | grep "app.name=$PROCESS" | grep -v grep | grep -v tail | wc -l)
        if [ $count -eq 0 ]
        then
                  nohup $JAVA -Djava.endorsed.dirs=$APP_HOME/lib/ -Dapp.name=$PROCESS $JAVA_OPTS -cp ".:${CLASSPATH}" XMain -config:$APP_HOME/conf/agent.conf -process_id:$PROCESS >> $APP_HOME/logs/$PROCESS.out & echo $! > $APP_HOME/log/$PROCESS.pid
        else
                  echo "$PROCESS is already running."
elif [ $1 = "stop" ]
then
        count=$(ps -ef | grep "app.name=$PROCESS" | grep -v grep | grep -v tail | wc -l)
        if [ $count -eq 1 ]
        then
                  p_string=$(ps -ef | grep "app.name=$PROCESS" | grep -v grep | grep -v tail)
                  pid=$(echo $p_string | awk '{print $2}')
                  echo "kill pid : $pid"
                  kill $pid
        else
                  echo "$PROCESS is not running"
        fi
elif [ $1 = "kill" ]
then
        count=$(ps -ef | grep "app.name=$PROCESS" | grep -v grep | grep -v tail | wc -l)
        if [ $count -eq 1 ]
        then
                  p_string=$(ps -ef | grep "app.name=$PROCESS" | grep -v grep | grep -v tail)
                  pid=$(echo $p_string | awk '{print $2}')
                  kill -9 $pid
        else
                  echo "$PROCESS is not running"
        if
elif [ $1 = "setup" ]
then
       $JAVA -cp ".:${CLASSPATH}" common.util.AgentSetupChecker -config:$APP_HOME/conf/agnet.conf f -process_id:$PROCESS
elif [ $1 = "enc" ]
then
       $JAVA -cp ".:${CLASSPATH}" common.util.AgentEncrypt -config:$APP_HOME/conf/agent.conf f -process_id:$PROCESS
elif [ $1 = "test" ]
then
       nohup $JAVA -cp ".:${CLASSPATH}" sim.SimTestRElay -port:3000
elif [ $1 = "file_enc" ]
then
       $JAVA -cp ".:${CLASSPATH}" test.testFileEncDec -confing:$APP_HOME/conf/agent.conf -enc:true -file:$2 
elif [ $1 = "file_dec" ]
then
       $JAVA -cp ".:${CLASSPATH}" test.testFileEncDec -config:$APP_HOME/conf/agent.conf -enc:false -file:$2
fi