首页 > 编程语言 >jenkins--构建传输jar包后启动java服务

jenkins--构建传输jar包后启动java服务

时间:2023-05-25 17:55:23浏览次数:50  
标签:包后 grep -- jar JAR 命令 FILE java

jenkins--构建传输jar包后启动java服务

目标:针对单体java服务

前置条件:jdk1.8 日志切割cronolog

jdk1.8安装
cronolog安装

创建server.sh脚本文件

#! /bin/bash
JAR_PATH="/data/forwarder" # 文件目录
JAR_FILE="ruoyi-admin.jar" # 文件名
LOG_PATH="/data/forwarder/logs" #cronolog 日志切割路径
LOG_FILE="$LOG_PATH/console-%Y-%m-%d.out" #cronolog 日志切割生成文件
# 停止 Java 服务
echo "Stopping Java service..."
PID=$(ps -ef | grep $JAR_FILE | grep -v grep | awk '{print $2}')
if [ -n "$PID" ]; then
    kill $PID
fi
sleep 5
# 启动 Java 服务
echo "Starting Java service..."
source /etc/profile #jenkins默认是用非登录模式来执行shell命令,所有没有加载环境变量配置文件。
nohup java -jar $JAR_PATH/$JAR_FILE 2>&1 | cronolog $LOG_FILE >> /dev/null 2>&1 &
#/dev/null 中,这是一个特殊的文件,它会将所有数据直接丢弃。
停止java服务
输出 "Stopping Java service..." 字符串。
使用 ps -ef 命令列出当前系统上所有进程的详细信息。
使用 grep 命令过滤出包含 $JAR_FILE 字符串的进程。
使用 grep -v grep 命令将过滤出来的进程中排除包含 "grep" 字符串的进程(即过滤掉 grep $JAR_FILE 这条命令本身)。
使用 awk '{print $2}' 命令提取非grep进程的 PID。
如果 PID 存在,则使用 kill 命令杀死该进程。
为了确保进程已经停止,等待 5 秒钟。
2>&1、>>、最后一个& 的作用
2>&1 是将标准错误输出(stderr)重定向到标准输出(stdout),也就是说,它将标准错误输出的内容和标准输出合并为一个流,一起输出到管道中或者输出到文件。

>> 是将输出重定向到指定文件的末尾,并在不覆盖已有内容的情况下将输出内容追加到该文件中。

最后一个 & 表示将进程放到后台执行,在命令行中使用 & 可以让该命令在后台运行,控制台可以继续输入其他命令,而不必等待该命令执行完成。如果该命令是一个长时间运行的进程并且需要在后台持续运行,则需要使用 nohup 命令来使进程在退出 shell 后仍然运行。

jenkins调用脚本

文件全路径 sh /data/forwarder/ruoyi-admin.jar

cronolog 查看

进入日志目录/data/forwarder/logs

tail -f -n 500 console-2023-05-25.out #实时查看日志文件最近500条记录

标签:包后,grep,--,jar,JAR,命令,FILE,java
From: https://www.cnblogs.com/hwjShl/p/17431731.html

相关文章

  • 转换视频格式|压缩视频|使用ffmpeg
    代码如下importos.pathimportsubprocessdefcompress_video(origin_file=None,target_file=None,quality=10):#压缩质量(值越小,视频越小)#如果文件存在就删除ifos.path.exists(target_file):os.remove(target_file)ifnotos.path.ex......
  • 机器学习(八):贝叶斯网络——福尔摩斯推理、草地喷水器推断
    实验4贝叶斯网络一、预备知识二、实验目的掌握贝叶斯网络算法的原理及设计;掌握利用贝叶斯网络算法解决推理分析。三、实验内容福尔摩斯先生在办公室接到了他邻居华生的电话P(W=T)。华生告诉他:他的家里可能进了窃贼P(B=T),因为他家的警铃响了P(A=T)被告......
  • springboot aspect 对请求参数,返回数据加密
        对客户端<--->服务端传输数据加密。  上送文件流不加密,其他信息加密。  返回信息加密。 切面的方式进行解密,不修改业务逻辑。   找到对应的方法,对应的参数,进行解密。@Around("@annotation(com.jiayingsoft.scip.annotation.ScipSecureityMethodAtn......
  • Nvm 安装node报错: The system cannot find the path specified.
    解决思路:1.确保你安装nvm之前node.js已经删除干净了。这一步如果不会请移步:https://blog.csdn.net/m0_51945510/article/details/127710792这个是要删除的。 2.确保你点击的安装路径中,没有空格和中文,并且确定存在这个目录(安装时,不会帮你新建文件夹)。  上面两张图只......
  • api/Request
    1、介绍 对应http请求对象。两种设置方法:基于url设置基于请求报文message设置,伴随设置协议类型https_flag2、代码importreimporttimeimportrequestsfromapi.PropertiesClassesimportHeadersfromapi.ResponseClassimportResponsefromapi.UrlClassimport......
  • 在Windows 10上检查.NET Framework版本
     一、使用文件资源管理器检查.NET版本1.打开文件资源管理器,浏览以下路径:C:\Windows\Microsoft.NET\Framework右键单击任何.dll文件并选择“属性”选项。 二、使用PowerShell检查.NET版本Get-ChildItem'HKLM:\SOFTWARE\Microsoft\NETFrameworkSetup\NDP'-Recurse|......
  • 【打怪升级】【容器】关于Map
    关于Map接口,具体的实现有HashMap、HashTable、TreeMap等 HashMap老规矩,如果我们要看源码,我们要从这么几点去看:它的继承结构、它的核心实现能力。我们知道hashMap是一个kv容器,那么它的实现其实主要取决于这几点:1.存放 如何处理hash冲突怎么存?2.获......
  • 多选自定义事件
    <template><view@click="onSelect(item,index)"v-for="(item,index)inlist"> //当选择的等于当前id才显示<imagev-if="selected.indexOf(item)>=0"></image><imagev-else></image></view><......
  • echart 隐秘的坑 => 传值类型
    前言最近整个大屏项目,期间遇到奇葩的问题:如下代码,发现legend的icon与文字老是有一段距离,也没报错legend={data:series.map(i=>i.name),//data:['预计曲线','实际曲线'],icon:'rect',right:'14',it......
  • scrapy:CrawlSpider及其案例
    1.CrawSpider介绍运行原理:2.pymysqlcondainstallpymysql3.案例-读书网爬虫&数据入库3.1案例需求3.2网页分析3.3创建爬虫项目3.4创建爬虫文件(与之前有区别)scrapygenspider-tcrawlreadhttps://www.dushu.com/book/1188.html3.5实现爬虫impor......