您的位置:首页 > 编程语言 > Java开发

java启动停止脚本

2016-03-07 13:10 429 查看
java程序启动脚本

#statrt------------------------------------------------------------------------------------------------------

#------------------------------------------------------------------------------------------------------------- 

#该脚本的使用方式为-->[sh *.sh]

#实际使用中,需注意以下两点 

#1)直接在Linux/UNIX上面创建并编写shell脚本 

# 这是因为Windows下编写的*.sh文档格式和编码,是Linux/UNIX所不能完全承认的 

# 最直接的体现就是使用过程中会遇到很多似是而非的错误,这曾经搞疯了一大片人 

#2)编写完*.sh之后,记得[chmod 755 *.sh],否则会提示无法执行or没有权限执行等等 

#------------------------------------------------------------------------------------------------------------- 

#JDK路径 

JAVA_HOME="/usr/local/java/jdk1.7.0_07"

#JVM启动参数 

#-server:一定要作为第一个参数,在多个CPU时性能佳 

#-Xloggc:记录GC日志,这里建议写成绝对路径,如此便可在任意目录下执行该shell脚本 

JAVA_OPTS="-Duser.timezone=GMT+8 -server -Xms2048m -Xmx2048m -Xloggc:/home/xiaoyababa/nettyDemo/gc.log"

#Java程序日志所在的目录 

APP_LOG=/home/xiaoyababa/nettyDemo/log

#Java程序主体所在的目录,即classes的上一级目录 

APP_HOME=/home/xiaoyababa/nettyDemo

#Java主程序,即main(String[] args)方法类

APP_MAIN=com.xiaoyababa.service.start.StartNettyDemo

#classpath参数,包括指定lib目录下的所有jar 

CLASSPATH=$APP_HOME

CLASSPATH="$CLASSPATH":$APP_HOME/config

for File in ../*.jar;do

CLASSPATH="$CLASSPATH":$APP_HOME/${File:3}

done

jobPID=0

getJobPID(){

   #通过JDK自带的JPS命令及grep命令,准确查找Java应用的PID 

    javaps=`$JAVA_HOME/bin/jps -l | grep $APP_MAIN`

    if [ -n "$javaps" ]; then

        jobPID=`echo $javaps | awk '{print $1}'`

    else

        jobPID=0

    fi

}

startup(){

    getJobPID

    echo "================================================================================="

    if [ $jobPID -ne 0 ]; then

        echo "$APP_MAIN already started(PID=$jobPID)"

        echo "================================================================================="

    else

        echo -n "Starting $APP_MAIN $CLASSPATH"

        nohup $JAVA_HOME/bin/java $JAVA_OPTS -classpath $CLASSPATH $APP_MAIN > $APP_LOG/nohup.log &

        getJobPID

        if [ $jobPID -ne 0 ]; then

            echo "(PID=$jobPID)...[Success]"

            echo "================================================================================"

        else

            echo "[Failed]"

            echo "================================================================================="

        fi

    fi

}

startup

#end--------------------------------------------------------------------------------------------------------------------------------------------------------

java程序停止脚本

#statrt------------------------------------------------------------------------------------------------------

#该脚本的使用方式为-->[sh *.sh]

APP_MAIN=com.xiaoyababa.service.start.StartNettyDemo

jobPID=0

 

getJobPID(){

    javaps=`$JAVA_HOME/bin/jps -l | grep $APP_MAIN`

    if [ -n "$javaps" ]; then

        jobPID=`echo $javaps | awk '{print $1}'`

    else

        jobPID=0

    fi

}

shutdown(){

    getJobPID

    echo "================================================================================================================"

    if [ $jobPID -ne 0 ]; then

        echo -n "Stopping $APP_MAIN(PID=$jobPID)..."

        kill -9 $jobPID

        if [ $? -eq 0 ]; then

            echo "[Success]"

            echo "================================================================================================================"

        else

            echo "[Failed]"

            echo "================================================================================================================"

        fi

        getJobPID

        if [ $jobPID -ne 0 ]; then

            shutdown

        fi

    else

        echo "$APP_MAIN is not running"

        echo "================================================================================================================"

    fi

}

shutdown

#end--------------------------------------------------------------------------------------------------------------------------------------------------------

查看java程序运行转态

#statrt------------------------------------------------------------------------------------------------------

#该脚本的使用方式为-->[sh *.sh]

APP_MAIN=com.xiaoyababa.service.start.StartNettyDemo

jobPID=0

getJobPID(){

    javaps=`$JAVA_HOME/bin/jps -l | grep $APP_MAIN`

    if [ -n "$javaps" ]; then

        jobPID=`echo $javaps | awk '{print $1}'`

    else

        jobPID=0

    fi

}

getServerStatus(){

    getJobPID

    echo "================================================================================================================"

    if [ $jobPID -ne 0 ]; then

        echo "$APP_MAIN is running(PID=$jobPID)"

        echo "================================================================================================================"

    else

        echo "$APP_MAIN is not running"

        echo "================================================================================================================"

    fi

}

getServerStatus

#end--------------------------------------------------------------------------------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java main shell