Jenkins中pipeline后台进程起不来的问题-阿里云开发者社区

开发者社区> 单红宇> 正文

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
解决linux中Kipmi0进程对CPU使用率很高问题
突然top发现Kipmi0进程一直占用近乎100%的一个核的资源,并且已经持续了很长一段时间。 google查不到多少资料,看到一篇说法:是一些平台接口的管理器。不敢贸然杀死,再查查资料。
1345 0
C语言及程序设计进阶例程-25 排序问题及其求解
贺老师教学链接 C语言及程序设计进阶 本课讲解 快速排序实现 #include<stdio.h> void quicksort(int data[],int first,int last) { int i, j, t, base; if (first>last) return; base=data[first];
1024 0
redis-server进程CPU百分百问题
结论: 待确认是否为redis的BUG,原因是进程实际占用的内存远小于配置的最大内存,所以不会是内存不够需要淘汰。 CPU百分百redis-server进程集群状态: slave 解决办法: 使用gdb将d.ht[0].used的值改为0 问题原因: dictGetRandomKey()过程中, 无法走到分支“if (dictSize(d) == 0) return NULL;”, 导致函数dbRandomKey()进入死循环。
2468 0
Linux运行与控制后台进程的方法:nohup, setsid, &, disown, screen
我们经常会碰到这样的问题,用ssh登录了远程的Linux服务器,运行了一些耗时较长的任务,结果却由于网络等的不稳定导致任务中途失败。这是由于在用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。
966 0
asp.net 服务器控件LinkButton等在后台代码中设置js事件或添加css样式
这个如果想在后台cs代码中控制不显示下划线,如下写法即可: this.Lk_AreaType.
770 0
+关注
单红宇
软件从业者,爱好技术。
313
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《Nacos架构&原理》
立即下载
《看见新力量:二》电子书
立即下载
云上自动化运维(CloudOps)白皮书
立即下载