因为需要使用jenkins做自动部署,所以写了个脚本来启动springboot,主要功能是备份下原来的jar,关闭现有进程,给jenkins新复制来的jar授权755,启动springboot。
#!/bin/bash
DATE=$(date +%Y%m%d)
JAR=test-0.0.1-SNAPSHOT.jar
JARPATH=/server-root
CONFIG=test-application.yml
if [ ! -d $DIR/backup ];
then mkdir -p $JARPATH/backup
fi
echo "Stopping SpringBoot Application"
pid=$(ps -ef | grep -i $JAR | grep -v "grep" | awk '{print $2}')
echo "获取pid成功" + $pid
if [ -n "$pid" ];
then kill -9 $pid
echo '解除端口占用'
fi
file=$JARPATH/$JAR
if [ -f "$file" ];
then echo '开始移动文件' mv $JARPATH/$JAR $JARPATH'/backup/'$JAR$DATE
fi
echo '移动成功'
echo '授予当前用户权限'
chmod 755 $JARPATH/$JAR
echo '执行......'
BUILD_ID=dontkillMe nohup java -jar $JARPATH/$JAR --spring.config.location=$JARPATH/$CONFIG > $JARPATH/$JAR-console.log 2>&1 &
exit 0
日志输出在同目录下的jar + "-console.log"中,修改前置变量JAR和JARPATH即可使用;
留言