jenkins部署记录

jenkins部署记录

此段部署逻辑简单说明:拷贝我们的jar包到我们指定的目录wqtest中,然后我们再cd到此目录,先判断是否存在有历史开过的进程 ,如存在则过滤出历史开过的进程并将它kill掉。最后再重新启动一次。

cp -f ruoyi-admin/target/ruoyi-admin.jar /data01/wqtest/
cd /data01/wqtest/

ruoyi_admin_pid=$(ps auxww | grep "java -jar ruoyi-admin.jar" | grep -v "grep" | awk '{print $2}'  |awk -F '/' '{print $1}')
if [ -n "$ruoyi_admin_pid"  ]
then
    ps auxww | grep "java -jar ruoyi-admin.jar" | grep -v "grep" | awk '{print $2}'|xargs kill -9
fi

BUILD_ID=dontKillMe
nohup java -jar ruoyi-admin.jar --server.port=8080 >> ./log/wqtest_log_`date +%Y-%m-%d`.out 2>&1 &

注释

BUILD_ID=dontKillMe

PS:用途→使用Jenkins自动打包部署时候,Jenkins任务停止后,会杀死其启动的衍生进程,导致启动的Tomcat、Nginx或者Uis等在Jenkins任务停止后,被杀死,为了避免这种其概况,需要在执行的shell脚本中加入“BUILD_ID=dontKillMe”,告诉Jenkins不要在任务退出时,杀死自己启动的衍生进程。

grep -v
反向查找的意思,比如 grep -v grep 就是查找不含有 grep 字段的行

awk '{print $2}'   #输出第2个字段
awk -F '/' '{print $1}')
# 以斜杠为分隔符将第一个值输出
# awk -F指定分隔符,awk中默认分隔符是空格。                                                                                                                      

什么是xargs

  • 不用官方的话,大白话来说,就是可以将管道|的参数的数据转换成命令行参数,就是相当于一个过滤器,组合多个命令的一个小工具。

什么是awk

  • 作为linux三剑客之一, 是一种处理文本文件的语言,是一个强大的文本分析工具。

参考链接

https://blog.csdn.net/qq_45860349/article/details/122962453

你可能感兴趣的:(jenkins部署记录)