linux 部署脚本

shell 脚本

#!/bin/bash
#设置jdk环境
export JAVA_HOME=/usr/java/jdk1.8.0_45
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

###################################
#环境变量及程序执行参数
#需要根据实际环境以及Java程序名称来修改这些参数
###################################
 
#需要启动的Java主程序(main方法类)
JAR_FILE="schedule.server-1.0-SNAPSHOT.jar"

#项目路径
APP_HOME="/home/robin/wallet_push"
#环境配置
ENV_OPTS="--spring.profiles.active=release"
SPRING_CONFIG_LOCATION="--spring.config.location=$APP_HOME/release/job.properties,$APP_HOME/release/application.properties,$APP_HOME/release/quartz.properties"

#端口号
SERVER_PORT="8085"
 
#java虚拟机启动参数
JAVA_OPTS="-ms512m -mx512m -Xmn256m -Djava.awt.headless=true -XX:MaxPermSize=128m -Dsun.net.http.allowRestrictedHeaders=true"
###################################
# 获取进程id
pid=0

checkpid() {
   server_pid=$(pgrep -f $JAR_FILE)
 
   if [ -n "$server_pid" ]; then
      pid=`echo $server_pid`
   else
      pid=0
   fi
}

start(){
    echo "ready to start $JAR_FILE"
    checkpid
        if [ 0 -ne $pid ]
        then
            echo "warn: server started already!"
        else
            java $JAVA_OPS -jar $JAR_FILE --server.port=$SERVER_PORT $SPRING_CONFIG_LOCATION > stdout.log &
            sleep 3s
            if [ 0 -ne $pid ]
            then
                echo "warining: failed"
            else
                echo "server started"
            fi
        fi
}

stop(){
    checkpid
    if [ 0 -ne $pid ]
        then
        kill -9 $pid
        checkpid
        if [ 0 -eq $pid ]
            then
                echo "server stoped"
            else
                echo "warning: server toped failed!"
            fi

        else
            echo 'warning: server not started!'
        fi
}

case $1 in
    start)
    start
        ;;
 
    restart)
        stop
    start
    ;;
    stop)
    stop
    ;;

esac

猜你喜欢

转载自www.cnblogs.com/canmeng-cn/p/9255409.html