只写配置部分:踩了一天的坑,注意看构建的启动日志
#!/bin/bash
# 必须定义,如果不定义jenkins会在一个job执行完成后将tomcat程序杀死,造成程序无法再启动
# 定义变量
JAR_NAME="service-api.jar"
JAR_FILE=~/workspace/wisdom-vehicle/service-api/target/${JAR_NAME}
echo "lujin ${JAR_FILE}"
execute_target=~/service-api/
# 在部署前杀死上一次的程序
pid=$(ps -ef | grep ${JAR_NAME} | grep -v grep | awk '{print $2}')
if [ -n "${pid}" ]; then
echo "kill -9 ${pid}"
# grep ${JAR_NAME} 查询一个程序
# grep -v grep 去除 grep
# awk '{print $2}' 获取第二列数据
# xargs kill -9 xargs可以将返回的数据传到给下一个命令使用
ps -ef | grep ${JAR_NAME} | grep -v grep | awk '{print $2}' | xargs kill -9
fi
# 判定目录和文件是否存在
if [ ! -f ${JAR_FILE} ]; then
echo "service-api.jar not exist!"
exit
else
if [ ! -d ${execute_target} ]; then
echo "create directory:${execute_target}"
mkdir -p ${execute_target}
fi
cp ${JAR_FILE} /test/${JAR_NAME}
fi
# 部署新的程序
chmod 777 /test/service-api.jar
chmod 777 /logs/service-api/*
cd /test/
echo "Go to the execution directory >> ${JAR_NAME}"
JENKINS_NODE_COOKIE=dontKillMe nohup java -jar service-api.jar --spring.profiles.active=prod >log.txt &
sleep 10
echo "Startup SpringBoot Application SUCCESS"