Jenkins中pipeline后台进程起不来的问题

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/catoop/article/details/79637311 在普通的shell环境中,nohup,并且& 某个程序后,会抛到后台执行,在退出当前shell环境后,程序依然可以执行。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/catoop/article/details/79637311

在普通的shell环境中,nohup,并且& 某个程序后,会抛到后台执行,在退出当前shell环境后,程序依然可以执行。但是在Jenkins的pipeline中,通过nohup,且使用&之后,step结束后,执行的程序还是会退出,导致程序起不来。

此前说过关于直接配置 job 这种问题的处理方法,链接:http://blog.csdn.net/catoop/article/details/48207219

直接使用以前的方法(修改BUILD_ID),对于pipeline来说是没有效果的,现在你可以使用修改 JENKINS_NODE_COOKIE 的值来解决问题,这样后续结束的时候,后面的sh程序就不会被kill掉了。
如下示例代码,是我的某个pipeline脚本片段:

......
stage('发布') {
    ansiColor('xterm') {
        sh "mkdir -p ${deploy_package_path}"
        sh "\\cp -Rf ${workspace_package_path} ${deploy_package_path}"
        // 停止Tomcat
        sh "${tomcat_home}/${JOB_NAME}/bin/kill.sh"
        // 启动Tomcat
        sh "JENKINS_NODE_COOKIE=dontKillMe ${tomcat_home}/${JOB_NAME}/bin/startup.sh"
        println("发布并重启Tomcat完成");
    }
}
......

截止本文适用版本:Jenkins 2.107.1 版本,后续版本升级可能会有差异或改动,如果新版本该方法不行,可能需要再找一下别的方法,新的方法欢迎留言共享给需要的朋友。

目录
相关文章
|
10月前
|
监控 编译器 Python
如何利用Python杀进程并保持驻留后台检测
本教程介绍如何使用Python编写进程监控与杀进程脚本,结合psutil库实现后台驻留、定时检测并强制终止指定进程。内容涵盖基础杀进程、多进程处理、自动退出机制、管理员权限启动及图形界面设计,并提供将脚本打包为exe的方法,适用于需持续清理顽固进程的场景。
|
Linux Shell
Linux 进程前台后台切换与作业控制
进程前台/后台切换及作业控制简介: 在 Shell 中,启动的程序默认为前台进程,会占用终端直到执行完毕。例如,执行 `./shella.sh` 时,终端会被占用。为避免不便,可将命令放到后台运行,如 `./shella.sh &`,此时终端命令行立即返回,可继续输入其他命令。 常用作业控制命令: - `fg %1`:将后台作业切换到前台。 - `Ctrl + Z`:暂停前台作业并放到后台。 - `bg %1`:让暂停的后台作业继续执行。 - `kill %1`:终止后台作业。 优先级调整:
1355 5
|
安全 API C#
C# 如何让程序后台进程不被Windows任务管理器强制结束
C# 如何让程序后台进程不被Windows任务管理器强制结束
873 0
|
jenkins Java Shell
解决jenkins结束后kill掉衍生进程
解决jenkins结束后kill掉衍生进程
1006 4
|
Android开发 开发者 Kotlin
Android 多进程情况下判断应用是否处于前台或者后台
本文介绍在多进程环境下判断Android应用前后台状态的方法。通过`ActivityManager`和服务信息`RunningAppProcessInfo`可有效检测应用状态,优化资源使用。提供Kotlin代码示例,帮助开发者轻松集成。
1436 8
|
Java jenkins 持续交付
Jenkins Pipeline 流水线 - 拉代码(SVN) + Maven 编译打包
Jenkins Pipeline 流水线 - 拉代码(SVN) + Maven 编译打包
733 0
Jenkins Pipeline 流水线 - 拉代码(SVN) + Maven 编译打包
|
存储 缓存 NoSQL
Redis性能优化问题之优化 Redis fork 耗时严重的问题,如何解决
Redis性能优化问题之优化 Redis fork 耗时严重的问题,如何解决
|
前端开发 jenkins 持续交付
jenkins学习笔记之二十:docker in docker运行pipeline
jenkins学习笔记之二十:docker in docker运行pipeline
|
jenkins 持续交付 网络安全
Jenkins Pipeline SSH Publisher 环境变量、参数引用 要用双引号
Jenkins Pipeline SSH Publisher 环境变量、参数引用 要用双引号
486 0
|
jenkins 持续交付 Windows
Jenkins Pipeline 多分支流水线 Input length = 1
Jenkins Pipeline 多分支流水线 Input length = 1
228 0

推荐镜像

更多