Jar包脚本部署案例

#!/bin/sh
 
#注意事项
#svn
#svn help查看svn帮助
#1.svn代码检出
#	svn co http://路径(目录或文件的全路径) [本地目录全路径]  --username 用户名 --password 密码
#	svn co svn://路径(目录或文件的全路径) [本地目录全路径]  --username 用户名 --password 密码
#	svn checkout http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
#	svn checkout svn://路径(目录或文件的全路径) [本地目录全路径]  --username 用户名
#常量
 
set -e
# 基础
# export JAVA_HOME=/work/programs/jdk/jdk1.8.0_181
# export PATH=PATH=$PATH:$JAVA_HOME/bin
# export CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 
DATE=$(date +%Y%m%d%H%M)
# 脚本所在目录
BASE_PATH=$(pwd)
# 服务名称。同时约定部署服务的 jar 包名字也为它。
SERVER_NAME=case-server
# 环境
PROFILES_ACTIVE=dev

# JVM 参数
JAVA_OPS="-Xms512m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError"
# JavaAgent 参数。可用于配置 SkyWalking 等链路追踪
JAVA_AGENT=
 
# 停止 将原 jar 包对应的 Java 进程,进行优雅关闭
function stop() {
    echo "[stop] 开始停止 $BASE_PATH/$SERVER_NAME"
    PID=$(ps -ef | grep $BASE_PATH/$SERVER_NAME | grep -v "grep" | awk '{print $2}')
    # 如果 Java 服务启动中,则进行关闭
    if [ -n "$PID" ]; then
        # 正常关闭
        echo "[stop] $BASE_PATH/$SERVER_NAME 运行中,开始 kill [$PID]"
        kill -15 $PID
        # 等待最大 60 秒,直到关闭完成。
        for ((i = 0; i < 60; i++))
            do  
                sleep 1
                PID=$(ps -ef | grep $BASE_PATH/$SERVER_NAME | grep -v "grep" | awk '{print $2}')
                if [ -n "$PID" ]; then
                    echo -e ".\c"
                else
                    echo '[stop] 停止 $BASE_PATH/$SERVER_NAME 成功'
                    break
                fi
			done
        
        # 如果正常关闭失败,那么进行强制 kill -9 进行关闭
        if [ -n "$PID" ]; then
            echo "[stop] $BASE_PATH/$SERVER_NAME 失败,强制 kill -9 $PID"
            kill -9 $PID
        fi
    # 如果 Java 服务未启动,则无需关闭
    else
        echo "[stop] $BASE_PATH/$SERVER_NAME 未启动,无需停止"
    fi
}
 
# 启动 使用新的 jar 包,启动 Java 服务
function start() {
	cd $BASE_PATH
    # 开启启动前,打印启动参数
    echo "[start] 开始启动 $BASE_PATH/$SERVER_NAME"
    echo "[start] JAVA_OPS: $JAVA_OPS"
    echo "[start] JAVA_AGENT: $JAVA_AGENT"
    # 开始启动
    nohup java -server $JAVA_OPS $JAVA_AGENT -jar $BASE_PATH/$SERVER_NAME.jar --spring.profiles.active=$PROFILES_ACTIVE  /dev/null 2>&1 &
    echo "[start] 启动 $BASE_PATH/$SERVER_NAME 完成"
	cd $BASE_PATH
}
# 部署
function deploy() {
    stop
    # 启动 Java 服务
    start
}
#deploy

执行方式
#启动
source xx.sh start

source xx.sh
#启动
start
#停止
stop

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值