Spring Boot 应用一键发布脚本
在日常工作中,如果要发布Spring Boot
应用,我一般都是这么操作:
- 先用
ps
命令查出应用的PID
:
[root@instance-at7i35d2 ~]# ps aux| grep ccsp
root 525907 1.3 2.3 25796828 1536240 pts/0 Sl 11:33 1:24 java -jar /mnt/ccsp/ccsp-0.0.1-SNAPSHOT.jar --spring.profiles.active=prd
root 527965 0.0 0.0 12136 1108 pts/2 S+ 13:14 0:00 grep --color=auto ccsp
- 再用
kill
命令终止进程:
[root@instance-at7i35d2 ~]# kill -9 525907
- 最后重新启动应用:
[root@instance-at7i35d2 ~]# nohup java -jar /mnt/ccsp/ccsp-0.0.1-SNAPSHOT.jar --spring.profiles.active=prd &> /mnt/ccsp/log.txt &
有时候为了确认应用正常启动,还需要再使用ps
命令查看进程状态。
虽然手输一遍命令也不是特别麻烦,但如果发布频繁,或者要维护多个环境,就很头疼了,难免出现手滑在生产发布时使用active=test
这样的情况出现。
当然上边这种机械重复性工作可以用bash
脚本来代替:
#!/bin/bash
#输出之前的应用情况
ps aux| grep ccsp| grep -v grep
#获取CCSP应用的pid
ccspPID=$(ps aux| grep ccsp| grep -v grep| awk '{print $2}')
#终止应用
kill -9 $ccspPID
#重新启动
nohup java -jar /mnt/ccsp/ccsp-0.0.1-SNAPSHOT.jar --spring.profiles.active=test &> /mnt/ccsp/log.txt &
#显示启动结果
ps aux| grep ccsp| grep -v grep
以后再发包只要上传完jar
包后执行脚本即可。
不同的环境只要替换脚本中的active=xxx
即可。