【问题解决】Jenkins的Pipeline无法正常后台启动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

相关推荐
...对方正在输入......8 小时前
Elasticsearch集群部署实战指南
elasticsearch·jenkins
程序员潇潇12 小时前
Jenkins 插件下载速度慢安装失败?这篇文章可能解决你头等难题!
运维·自动化测试·软件测试·功能测试·程序人生·职场和发展·jenkins
ζั͡山 ั͡有扶苏 ั͡✾20 小时前
EFK 日志系统搭建完整教程
运维·jenkins·kibana·es·filebeat
Ryan ZHENG1 天前
[Android][踩坑]Android Studio导入core-libart.jar
android·android studio·jar
q***13341 天前
使用 java -jar 命令启动 Spring Boot 应用时,指定特定的配置文件的几种实现方式
java·spring boot·jar
小晶晶京京1 天前
day62-gitlab和JenKins
运维·gitlab·jenkins
奔跑吧邓邓子2 天前
Jenkins自动化持续集成:从入门到实战
ci/cd·自动化·实战·jenkins·自动化持续集成
e***0962 天前
Springboot中使用Elasticsearch(部署+使用+讲解 最完整)
spring boot·elasticsearch·jenkins
Better Bench2 天前
Elasticsearch BM25 检索器连接问题解决方案
大数据·elasticsearch·jenkins
2501_941800882 天前
Python高性能日志分析与Elasticsearch实战分享:海量日志索引、检索与可视化优化经验
运维·jenkins