【问题解决】Jenkins的Pipeline无法正常后台启动Jar包

devtools/2024/10/25 18:28:26/

文章目录

  • 问题描述
  • 排查Jenkins日志
  • 启动流水线观察Jar包启动情况
  • 初步推测问题
  • 问题原因:Jenkins进程管理机制
  • 问题解决:改写启动Jar包命令
  • 参考文章

问题描述

执行Jenkins的Pipeline,执行结果显示为成功,但是Java程序没有成功启动

排查Jenkins日志

日志中执行的启动Jar包命令为

nohup java -jar /root/jenkins/workspace/Jenkins-Learning-0.0.4-SNAPSHOT.jar

Pipeline中配置的启动Jar包命令为

"nohup java -jar ${TARGET_DIR}/${jarName} > ${TARGET_DIR}/mylog.log 2>&1 &"

启动流水线观察Jar包启动情况

[root@jh-centos7 workspace]# jps
8823 war
9945 Jps
[root@jh-centos7 workspace]# jps
8823 war
9979 Jenkins-Learning-0.0.4-SNAPSHOT.jar
9966 Jps
[root@jh-centos7 workspace]# jps
8823 war
9979 -- process information unavailable
9997 Jps

从上述可以看到,流水线在执行过程中是有一瞬间启动了Jar包的,但是之后进程又消失了

初步推测问题

Pipeline中设置的命令与真正执行时的命令不同,主要区别在于是否有后台启动标识"&"

问题原因:Jenkins进程管理机制

Jenkins的进程管理机制:ProcessTreeKiller。Jenkins会在构建任务结束时,关闭构建任务本身的进程和在构建任务进程中启动的其他进程。

问题解决:改写启动Jar包命令

JENKINS_NODE_COOKIE=dontKillMe nohup java -jar ${TARGET_DIR}/${jarName} > ${TARGET_DIR}/mylog.log 2>&1 &

参考文章

https://blog.csdn.net/weixin_43767360/article/details/131980955


http://www.ppmy.cn/devtools/100584.html

相关文章

大数据技术之Zookeeper服务器动态上下线监听(6)

目录 服务器动态上下线监听案例 步骤 1: 创建 Zookeeper 客户端 步骤 2: 注册 Watcher 并获取服务器列表 步骤 3: 服务器上下线操作 示例代码 说明 注意事项 服务器动态上下线监听案例测试 测试环境准备 测试步骤 示例代码 ServerListWatcherExample.java 运行测试 …

代码随想录训练营day29|134.加油站,135. 分发糖果,860.柠檬水找零,406.根据身高重建队列

加油站 想法&#xff1a;暴力遍历&#xff1f; 好吧第一遍写的时候读错题意了&#xff0c;以为是比较gas[i]与cost[i1]的值&#xff0c;shit。 int sum10,sum20; for(int g:gas)sum1g;for(int c:cost)sum2c;if(sum1<sum2)return -1;//如果gas没cost多int youliang0;int n…

最新版:CISAW信息安全保障人员专业级认证通用要求

信息安全保障人员&#xff08;information security assurance professional&#xff09;从事网络与信息安全相关工作的所有人员&#xff0c;包括组织的管理人员&#xff08;例如&#xff0c;首席信息官、首席安全官、科技管理部门和风险控制管理部门的人员&#xff09;、信息技…

数据结构-时间、空间复杂度-详解

数据结构-时间复杂度-详解 1.前言1.1数据结构与算法1.2如何衡量一个算法的好坏1.3复杂度 2.时间复杂度2.1是什么2.2大O符号只保留最高阶项不带系数常数次为O(1) 2.3示例示例2.1示例2.2示例2.3示例2.4 2.4题目 3.空间复杂度3.1是什么3.2大O符号3.3示例示例1示例2示例3示例4 4.题…

UE4编安卓时Core模块为何只include Android文件夹?

Core模块 Core模块是整个引擎中最核心的模块。几乎UE4中的每个其他模块都导入Core。Engine\Source\Runtime\Core\Private下有很多文件夹&#xff0c;下面罗列一部分&#xff1a; G:\St\EngineSource\Engine\Source\Runtime\Core\Private 的目录 2024/07/18 12:02 <DIR…

关于如何在已有qt项目中添加该项目的单元测试工程

关于如何在已有qt项目中添加该项目的单元测试工程 新建一个子目录工程&#xff0c;把已有项目作为子工程添加进去&#xff0c;然后新建单元测试工程也作为子工程添加进去。单元测试项目要独立于实际项目工程&#xff0c;确保去掉测试项目后&#xff0c;实际项目仍可以正常运行…

网络安全售前入门02——产品了解

目录 1.前言 2.WEB应用防火墙介绍 2.1产品架构功能 2.2应用场景 2.3部署形式 2.4产品价值 2.5选型依据 3.上网行为审计 3.1产品架构功能 3.2应用场景 3.3部署形式 3.4产品价值 3.5选型依据 后续 1.前言 为方便初接触网络安全售前工作的小伙伴了解网安行业情况,我…

macOS M1Pro 安装 chntpw 工具

chntpw介绍 chntpw 工具是用来修改位于 boot.wim 文件第一个索引&#xff08;或分区&#xff09;中的注册表。 在macOS中安装 Windows虚拟机的时候一般会用到 我们采用Homebrew来安装chntpw&#xff0c;需要确保电脑上已经安装好Homebrew。 因为Homebrew无法在核心仓库中找…