【问题解决】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 小时前
docker 实现ES+Kibana
elasticsearch·docker·jenkins
乂爻yiyao6 小时前
Spring Boot Fat JAR 容器化指南
spring boot·后端·jar
罗技1236 小时前
在 Kubernetes 上用 Fluent Bit 收集 Nginx 日志到 Easysearch
nginx·kubernetes·jenkins
是垚不是土14 小时前
ClaudeCode×Elasticsearch:服务日志查询的 AI 化落地实践
大数据·运维·人工智能·elasticsearch·云计算·jenkins
我是苏苏14 小时前
Web开发:自动化部署!在Windows系统上安装和使用Jenkins!
运维·自动化·jenkins
丈剑走天涯14 小时前
kubernetes Jenkins 二进制安装指南
java·kubernetes·jenkins
qq_4371006614 小时前
ElasticSearch查询实例等记录
运维·jenkins
七夜zippoe15 小时前
Java项目CI/CD实战:Jenkins与GitLab CI深度解析
java·ci/cd·gitlab·jenkins·groovy·pipline
zxfBdd14 天前
Error:scala: No ‘scala-library*.jar‘ in Scala compiler classpath in Scala SDK
大数据·scala·jar
海兰14 天前
Jina Embeddings V5 Text + Elasticsearch 9.x 本地部署指南
elasticsearch·jenkins·jina