java启动停止脚本

来源:互联网 发布:wince5.0软件 编辑:程序博客网 时间:2024/05/21 19:24

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--------------------------------------------------------------------------------------------------------------------------------------------------------

0 0
原创粉丝点击