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

相关推荐
测试界吖吖5 小时前
使用Jenkins扩展钉钉消息通知
自动化测试·软件测试·功能测试·程序人生·servlet·jenkins·钉钉
@Young Cheung6 小时前
Elasticsearch入门安装
大数据·elasticsearch·jenkins
乐世东方客7 小时前
jenkins的nginx反向代理配置
jenkins
牧竹子12 小时前
SpringBoot 项目 Jar 包加密,防止反编译
spring boot·后端·jar
磐石区13 小时前
Jenkins Docker Pipeline Clone Build Deploy mysqldump
docker·pipeline·jenkins·mysqldump·build
佚名涙13 小时前
5分钟熟练上手ES的具体使用
大数据·学习·elasticsearch·jenkins
一勺菠萝丶21 小时前
深入理解Elasticsearch的`_source`字段与索引优化
大数据·elasticsearch·jenkins
探索云原生1 天前
ArgoWorkflow教程(四)---Workflow & 日志归档
go·jenkins·devops·cicd·argoworkflow
尚雷55802 天前
故障处理系列】elasticsearch 索引未正常分片导致集群状态异常如何分析处理
大数据·elasticsearch·jenkins