解决jenkins自动关闭衍生的子进程问题
原文:https://blog.csdn.net/recotone/article/details/80510201?utm_source=blogxgwz8用的docker 版 jenkinsci/blueocean:1.5.0网上一大堆文章说的都是1、临时改变BUILD_ID值为dontkillme2、 增加jenkins java 启动参数 -Dhudson.util.Pr...
·
原文:https://blog.csdn.net/recotone/article/details/80510201?utm_source=blogxgwz8
用的docker 版 jenkinsci/blueocean:1.5.0
网上一大堆文章说的都是
1、临时改变BUILD_ID值为dontkillme
2、 增加jenkins java 启动参数 -Dhudson.util.ProcessTree.disable=true
3、或者是 HUDSON_COOKIE, HUDSON_SERVER_COOKIE, JENKINS_COOKIE or JENKINS_SERVER_COOKIE
但是我要说的是以上通通 没卵用!
正确的姿势是:JENKINS_NODE_COOKIE
withEnv(['JENKINS_NODE_COOKIE=dontkillme']) {
sh """
${tomcatHome}/bin/startup.sh
"""
}
本人是使用jenkinsfile编写,道理一样
// jenkinsfile config
pipeline {
// 没有 agent 指令的话, 声明式流水线不仅无效, 它也不可能完成任何工作
agent any
// 使用全局定义工具
tools {
maven 'apache-maven-3.6.0'
jdk 'java-1.8-openjdk'
}
stages {
stage('build') {
steps {
echo 'Building..'
// 输出路径
sh 'pwd'
sh 'mvn --version'
sh 'java -version'
sh 'mvn -B -DskipTests clean package'
}
}
stage('run') {
steps {
echo 'run'
//pid=`ps -ef | grep dream-eureka.jar | grep -v grep | awk '{print $2}'`
//jenkins 默认会关闭衍生的子进程,声明如下环境变量JENKINS_NODE_COOKIE,使子进程不被关闭
withEnv(['JENKINS_NODE_COOKIE=dontkillme']) {
sh """
nohup java -jar xxx.jar > output 2>&1 &
"""
}
}
}
}
}
更多推荐
已为社区贡献9条内容
所有评论(0)