首页 文章

使用Jenkins管道,使用nohup在后台运行jar文件不会启动jar

提问于
浏览
1

我在MacOS-HighSierra上使用Jenkins版本2.121.1和Pipeline . 我的项目依赖于登录服务器,这是一个Springboot工件,在本地运行,我想在构建之前启动它 . 我有一个shell脚本来启动登录服务器 . shell脚本在命令行中运行良好 . 当我在Jenkins的上下文中运行它时,它失败了 . 以下是runloginserver shell脚本中的代码:

nohup java -jar /absolute/path/login-module/login-api.jar >/dev/null 2>&1 &

在我的Jenkinsfile中,我将舞台定义如下:

stage('Launch-login') {
  steps {
   script{
      withEnv(['JENKINS_NODE_COOKIE=dontkill']) {

        sh '/absolute/path/runloginserver '

       }           
   }
 }

}

控制台输出没有错误 . 没有nohup.out生成 . 并且服务器尚未启动

1 回答

  • 0

    您可能正在遇到Jenkins ProcessTree Killer . 这是一个Jenkins "feature",可以在构建完成时终止构建期间启动的任何后台进程,即使进程是以nohup启动或以其他方式与其父进程分离 . 链接中有关于如何禁用此行为的说明 - 可以全局禁用,也可以仅针对特定进程禁用 .

相关问题