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 版本,后续版本升级可能会有差异或改动,如果新版本该方法不行,可能需要再找一下别的方法,新的方法欢迎留言共享给需要的朋友。

目录
相关文章
|
29天前
|
Unix Shell Linux
Linux 终端和进程的关系,以及在终端前后台切换进程
Linux 终端和进程的关系,以及在终端前后台切换进程
27 1
|
1月前
|
Linux Shell
Linux 进程的前台/后台切换
当你用shell启动一个程序时,往往他是在前台工作的。程序会一直占用终端命令行,例如你在前台解压的时候必须等着,期间干不了别的事(除非另开一个终端)。 例如经常用连接到远程服务器执行脚本的时候,如果本地网络中断后,这个时候前台进程就结束了,比较的懊恼,必须重新执行。
48 6
|
4月前
|
jenkins 持续交付
Jenkins Pipeline 参数化构建
Jenkins Pipeline 参数化构建
81 0
|
29天前
|
前端开发 Android开发 iOS开发
应用研发平台EMAS使用 aliyun-react-native-push 库接入推送和辅助通道,推送都可以收到,但是在App切到后台或者杀掉进程之后就收不到推送了,是需要配置什么吗?
【2月更文挑战第31天】应用研发平台EMAS使用 aliyun-react-native-push 库接入推送和辅助通道,推送都可以收到,但是在App切到后台或者杀掉进程之后就收不到推送了,是需要配置什么吗?
26 2
|
6月前
|
jenkins 持续交付 开发工具
通过jenkins构建一个多分支的Pipeline项目
通过jenkins构建一个多分支的Pipeline项目
|
2月前
|
机器学习/深度学习 安全 API
如何在 Python 中启动后台进程?
如何在 Python 中启动后台进程?
66 1
|
3月前
|
算法 Linux 开发者
【Linux】后台进程
【Linux】后台进程
45 0
|
3月前
|
Shell 网络安全
在Shell中,后台进程管理
在Shell中,后台进程管理
32 4
|
4月前
|
存储 jenkins Shell
Jenkins Pipeline 流水线任务 补充篇
Jenkins Pipeline 流水线任务 补充篇
50 0
|
4月前
|
Java jenkins 持续交付
Jenkins Pipeline 流水线方式部署 SpringBoot 项目2
Jenkins Pipeline 流水线方式部署 SpringBoot 项目
135 0