【问题解决】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

相关推荐
萨格拉斯救世主43 分钟前
jenkins使用slave节点进行node打包报错问题处理
运维·jenkins
Narutolxy21 小时前
精准优化Elasticsearch:磁盘空间管理与性能提升技巧20241106
大数据·elasticsearch·jenkins
又是努力搬砖的一年1 天前
springBoot动态加载jar,将类注册到IOC
spring boot·后端·jar
晨欣2 天前
Elasticsearch里的索引index是什么概念?(ChatGPT回答)
大数据·elasticsearch·jenkins
2301_768212152 天前
jmeter所用的mysql的jar包进行下载,可写jdbc协议
mysql·jar
陵易居士3 天前
Java环境下配置环境(jar包)并连接mysql数据库
数据库·mysql·jar
铭毅天下3 天前
基于 Canal + Elasticsearch 的业务操作日志解决方案
大数据·elasticsearch·搜索引擎·全文检索·jenkins
饮啦冰美式3 天前
Jenkins找不到maven构建项目
运维·jenkins·maven
TracyCoder1233 天前
掌握ElasticSearch(八):聚集、文档间的关系
大数据·elasticsearch·jenkins
不惑_3 天前
ES文档:文档操作_doc(7.9.2)
大数据·elasticsearch·jenkins