完美解决Jenkins重启后自动杀掉衍生进程(子进程)问题

完美解决Jenkins重启后自动杀掉衍生进程(子进程)问题

本文中使用的Jenkins版本为Version 2.452.3

先罗列一下前置问题:Jenkins任务构建完成自动杀掉衍生进程

用过Jenkins的都知道,Jenkins任务构建完成后,是会自动杀掉衍生进程,这是为了释放系统资源和确保任务执行的可靠性和安全性,当在本机执行一些任务进程的时候,需要的是部署完成之后不能结束掉进程的(常见的是Java项目),网上针对这个问题的解决方案大致是这几种:

  • 加参数
    比如:BUILD_ID=dontKillMe,JENKINS_SERVER_COOKIE=dontKillMe, JENKINS_NODE_COOKIE=dontKillMe等等之类的,代码示例:

    BUILD_ID=dontKillMe nohup java -jar xxx.jar >log.out 2>&1 &

  • 添加全局属性

  • 修改Jenkins启动配置
    直接修改Jenkins 的service文件,/lib/systemd/system/jenkins.service,在Environment参数中增加参数-Dhudson.util.ProcessTree.disable=true,这种就是不需要在每个任务的shell中添加BUILD_ID这类参数

上面这几种方法是解决一次构建之后不杀衍生进程的方法,但是!!如果Jenkins重启了,那么之前所有构建部署的进程全部都会被自动杀掉了

解决方法就是 使用SSH执行部署,即在本机上也同样使用SSH来进行部署,跟部署到远程服务器一样,这样即使本机上Jenkins重启了,也不会影响对应的子进程,相关的子进程也不会结束掉

相关推荐
智脑API平台32 分钟前
Codex CLI 怎么用 .env 配置 API Key?本地项目和自动化脚本接入教程
运维·自动化
weixin_307779131 小时前
Linux下Docker Compose里运行的MySQL数据库故障诊断Shell脚本
linux·运维·mysql·docker·自动化
流浪0012 小时前
Git篇(三):吃透远程协作:SSH 密钥、分支、标签全流程实战指南
运维·git·ssh
FoldWinCard3 小时前
D4 Linux 进程 内存 等命令
linux·运维·服务器
番茄育学园3 小时前
2026表格自动化工具实测:四个不同方案,适配不同办公场景
运维·自动化
j7~3 小时前
【Linux 系统】二十.进程间通信(共享内存、消息队列、信号量)
linux·运维·消息队列·共享内存·信号量·system v
裤兜里有钱4 小时前
关于Xshell连接虚拟机Linux失败的主要原因
linux·运维·服务器
有毒的教程4 小时前
Ansible批量操作自动化完整教程:批量部署服务、配置同步、软件更新实战
运维·自动化·ansible
辞旧 lekkk4 小时前
CMake工程指南(一)
linux·运维·服务器·开发语言·qt·学习·萌新
oushaojun24 小时前
deepseek教我什么是docker
运维·docker·容器