实现一键部署Java服务

说一键部署有些夸张了,本文主要描述是通过linux脚本启动SpringBoot服务的一些细节
#!/bin/bash
echo "---shutdown---"
app_name=service-$1
dir=/A/B
pid=`ps -ef | grep $app_name.jar | grep -v "grep" | awk '{print $2}'`
if [ -n "$pid" ];then
   echo "kill -9的pid:" $pid
   kill -9 $pid
fi

echo "---upload---"
cd $dir/$app_name
rm -rf $dir/$app_name/$app_name.jar
rz

echo "---startup---"
nohup java -Dactive=dev -Deureka.url=http://localhost:0001/eureka/ -jar $dir/$app_name/$app_name.jar >$dir/$app_name/nohup.out &
tail -f $dir/$app_name/nohup.out

每行脚本对应的中文翻译:
1:指此脚本使用/bin/bash来解释执行。
2:输出字符串
3:声明变量为service-加上传入的第一个参数
4:声明绝对路径
5:“里面的内容表示参数输入;
管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入;
grep 是查找含有指定文本行的意思;
grep -v 是反向查找的意思,比如 grep -v grep 就是查找不含有 grep 字段的行;
awk是行处理器,awk ‘{print $2}’的意思是以空格作为分隔符,打印第二个字段;
第五行的意思就是:先查看app_name.jar包相关的信息并排除”grep”然后取第二个字段也是就是pid码

6:pid不为空则进入if,否则不进入
7:打印信息
8:杀掉进程
9:if结束符

12:切换目录
13:强制删除掉包
14:弹出文件选中框并上传选中的文件(部分环境支持此命令)

17:通过-D传入参数并后台启动jar包并将日志指向nohup.out
18:查看日志

发表回复

您的电子邮箱地址不会被公开。

3 × 4 =