#!/bin/bash
# 定义变量
today=`date +%y%m%d`
pid=
app=demo-service
jarFile=${app}.jar
sourcePath=/home/code/springboot/
#更新代码,启动带上分支可以切换到指定分支
cd ${sourcePath}/demo/
if [ -n "$1" ] ;then
echo "you have input is $1"
git checkout $1
fi
echo '当前分支::'
git pull
# 打包
cd ${sourcePath}/demo
mvn package -Dmaven.test.skip=true
#创建备份路径
cd /home/bak
if [ ! -d "${today}" ]; then
mkdir ${today}
fi
cd /home
# 备份jar包
if [ -f "$jarFile" ]; then
mv -f ${app}.jar ./bak/${today}
fi
# 替换新jar包
mv ${sourcePath}/demo/target/demo-0.0.1-SNAPSHOT.jar ${jarFile}
# 获取进程编号
function queryPid()
{
pid=`ps -ef|grep ${app}|grep -v grep|awk '{print $2}'`
if [ ${pid} ]
then
echo "应用PID: ${pid}"
else
echo "应用未运行"
fi
}
# kill 进程
function stop()
{
queryPid
if [ ${pid} ]
then
kill -9 ${pid}
if [ ${pid} ]
then
echo "停止失败"
else
echo "停止成功"
fi
fi
}
function start()
{
echo "启动应用"
nohup java -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/demo/java.h
prof -jar demo-service.jar --spring.profiles.active=dev --server.port=8080 > /home/server/springboot/console.log 2>&1 &
}
#停止进程
stop
#启动进程
start
linux下SpringBoot优雅更新、停机、发布
最新推荐文章于 2024-10-29 22:06:46 发布