shell 实现java程序的start,stop,restart,status

#!/bin/bash
#chkconfig: 5 80 90
#description:check
#
 
# source function library
#. /etc/rc.d/init.d/functions

JAVA_HOME=/usr/bin
export JAVA_HOME=$JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

DIALUP_PID=/root/unixDialup/dialup.pid
start()
{
    echo -n $"Starting $prog: "
    echo "Hello Linux Service check ..."
    nohup java -jar /root/unixDialup/check.jar >/dev/null 2>&1 & new_agent_pid=$!
	echo "$new_agent_pid" > $DIALUP_PID
}
 
stop()
{
       
	 if [ -f /root/unixDialup/dialup.pid ];then
                    SPID=`cat /root/unixDialup/dialup.pid`
					  if [ "$SPID" != "" ];then
						 kill -9  $SPID

						 echo  > $DIALUP_PID
						 echo "stop success"
					  fi
	 fi
}

CheckProcessStata()
{
    CPS_PID=$1
    if [ "$CPS_PID" != "" ] ;then
        CPS_PIDLIST=`ps -ef|grep $CPS_PID|grep -v grep|awk -F" " '{print $2}'`
    else
        CPS_PIDLIST=`ps -ef|grep "$CPS_PNAME"|grep -v grep|awk -F" " '{print $2}'`
    fi

    for CPS_i in `echo $CPS_PIDLIST`
    do
        if [ "$CPS_PID" = "" ] ;then
            CPS_i1="$CPS_PID"
        else
            CPS_i1="$CPS_i"
        fi

        if [ "$CPS_i1" = "$CPS_PID" ] ;then
            #kill -s 0 $CPS_i
            kill -0 $CPS_i >/dev/null 2>&1
            if [ $? != 0 ] ;then
                echo "[`date`] MC-10500: Process $i have Dead" 
                kill -9 $CPS_i >/dev/null 2>&1
               
                return 1
            else
                #echo "[`date`] MC-10501: Process is alive" 
                return 0
            fi
        fi
    done
    echo "[`date`] MC-10502: Process $CPS_i is not exists" 
    return 1
}

status()
{
  SPID=`cat /root/unixDialup/dialup.pid` 
  CheckProcessStata $SPID >/dev/null
                             if [ $? != 0 ];then
                                echo "unixdialup:{$SPID}  Stopped ...."
                              else
                                echo "unixdialup:{$SPID} Running Normal."
                             fi

}
 
restart()
{
    echo "stoping ... "
    stop
    echo "staring ..."
    start
}
 
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
         status
        ;;
    restart)
        restart
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart}"
        RETVAL=1
esac
exit $RETVAL

相关推荐