前提说明:
spring boot 应用打包成jar包之后要部署到Linux服务器上面运行,
我用的nohup java -jar 命令,但是代码更新之后重新部署的时候覆盖原来的项目,又要手动运行
ps -ef|grep jar包名 去查找进程,然后kill -9 去kill进程,有时候nohup进程老是kill不掉,只能多试几次,烦不胜烦。
.后来专门花时间研究了一下脚本和本地window上传文件到linux服务器的命令,
整合了一个启动脚本,顿时项目部署变得无比简单,一分钟内在线上的代码就可以更新了。下面是具体步骤:
#!/bin/sh
RESOURCE_NAME=zhgj-0.0.1-SNAPSHOT.jar
cd /home/workspace/zhgj3.0/
git pull
mvn clean package
cd /opt/atlassian/zhgj_3.0/
tpid=`ps -ef|grep $RESOURCE_NAME |grep -v grep|grep -v kill|awk '{print $2}'`
kill -9 ${tpid}
rm -f tpid
###备份文件
currenttime=$(date +%Y%m%d%H%M%S)
cp $RESOURCE_NAME ./backup/$currenttime.jar
rm -rf $RESOURCE_NAME
cp /home/workspace/zhgj3.0/target/zhgj-0.0.1-SNAPSHOT.jar /opt/atlassian/zhgj_3.0/
nohup java -jar $RESOURCE_NAME --spring.profiles.active=test > zhgj3_0.log 2>&1 &
sleep 3
echo $! > tpid
echo Start Success!
第二步, 脚本运行
cd /home (我是把jar包和脚本放在home下面)
chmod +x start.sh (第一次运行的时候获取一下超级管理员权限)
然后以后每次运行直接
./start.sh 即可