【问题标题】:process apparently never started in C:\Users\<user>\.jenkins\workspace\<jenkin_project>@tmp\durable-d3479d32 script returned exit code -2进程显然从未在 C:\Users\<user>\.jenkins\workspace\<jenkins_project>@tmp\durable-d3479d32 脚本返回退出代码 -2
【发布时间】:2018-07-09 16:03:39
【问题描述】:

我正在尝试构建一个管道来构建一个在 github 上提交的 java maven 项目管道。 我已经在我的 Windows 机器上安装了 jenkins。 我的管道在以下阶段受到打击

Started by user Akshay Katti
Obtained Jenkinsfile from git C:\Users\ak186148\git\Kylo-Accelerator
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] node
Running on Jenkins in C:\Users\ak186148\.jenkins\workspace\Kylo-Promoter-CI-CD
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Declarative: Checkout SCM)
[Pipeline] checkout
 > git.exe rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git.exe config remote.origin.url C:\Users\ak186148\git\Kylo-Accelerator # timeout=10
Fetching upstream changes from C:\Users\ak186148\git\Kylo-Accelerator
 > git.exe --version # timeout=10
 > git.exe fetch --tags --progress C:\Users\ak186148\git\Kylo-Accelerator +refs/heads/*:refs/remotes/origin/*
 > git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10
 > git.exe rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10
Checking out Revision e8ad0282a7fbd877461b3866a15f0116b2848065 (refs/remotes/origin/master)
 > git.exe config core.sparsecheckout # timeout=10
 > git.exe checkout -f e8ad0282a7fbd877461b3866a15f0116b2848065
Commit message: "Add initial Jenkinsfile"
 > git.exe rev-list --no-walk e8ad0282a7fbd877461b3866a15f0116b2848065 # timeout=10
[Pipeline] }
[Pipeline] // stage
[Pipeline] withEnv
[Pipeline] {
[Pipeline] sh
[C:\Users\ak186148\.jenkins\workspace\Kylo-Promoter-CI-CD] Running shell script
nohup: failed to run command 'sh': No such file or directory
process apparently never started in C:\Users\ak186148\.jenkins\workspace\Kylo-Promoter-CI-CD@tmp\durable-b24ab647
[Pipeline] sh
[C:\Users\ak186148\.jenkins\workspace\Kylo-Promoter-CI-CD] Running shell script
nohup: failed to run command 'sh': No such file or directory
process apparently never started in C:\Users\ak186148\.jenkins\workspace\Kylo-Promoter-CI-CD@tmp\durable-5e2947b3
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code -2
Finished: FAILURE

请在附件中找到我的 Jenkinsfile(我已从 sh 更改为 bat)

pipeline {
    agent {
        docker {
            image 'maven:3-alpine' 
            args '-v /root/.m2:/root/.m2' 
        }
    }
    stages {
        stage('Build') 
        { 
            steps {
                bat 'mvn -B -DskipTests clean package' 
            }
        }
    }
}

另外请在蓝海页面的错误下方找到 blue_ocean_error

请帮忙。

【问题讨论】:

  • 我得到了这个确切的错误,尽管我的管道声明有些不同。如果您弄明白了,如果您能在此处发布答案,将会大有帮助,因为即使我发布了一个新问题,它也会作为您的重复问题而被关闭。
  • 你们有什么发现吗?由于 Jenkins->Docker 交互,这似乎是一个问题。我将 Docker 作为命令运行,但它似乎与使用非 root 用户有关。 medium.com/@garunski/…

标签: java maven jenkins jenkins-plugins jenkins-pipeline


【解决方案1】:

这个“进程显然从未开始”是一个通用错误,可能有不同的原因,所以:

  1. 检查您的 Jenkins 服务器版本是否使用了最新的 DurableTask 插件,因为该插件的版本 more info),所以让我们消除第一个嫌疑人。
  2. 如果 1. 不适用或不起作用,根据前面的答案,诀窍是获取有关实际导致错误的原因的更多信息,为此您可以:
    1. 执行 org.jenkinsci.plugins.durabletask.BourneShellScript.LAUNCH_DIAGNOSTICS=true 在 Jenkins 的脚本控制台中进行调试(需要是 Jenkins 管理员),然后重新启动您的作业以查看作业控制台输出中是否有有用的新信息
    2. 激活上一个回答中提到的日志,但是你不需要重启Jenkins或者访问托管Jenkins的服务器,你只需要是一个Jenkins管理员并且使用'System Logs' administration page创建一个日志记录器org.jenkinsci.plugins.durabletask 并重新开始你的工作,看看你的自定义日志记录器中是否有有用的新信息。

就我而言,通过系统控制台激活LAUNCH_DIAGNOSTICS 时出现以下错误:

nohup: possible d'exécuter la commande « sh »: Aucun fichier ou dossier de ce type

很明显,PATH 有问题。 This answer 在类似的问题上然后帮助我注意到这是由系统配置页面中的 PATH 环境变量的修改引起的。

【讨论】:

  • 这帮助我快速识别权限问题。谢谢。
【解决方案2】:

我不确定您是否可以(轻松)在 Windows 上运行它。

对我来说,问题是正确的 nohup 不在 PATH 上。

在创建文件logging.properties 后,我开始调试java -Djava.util.logging.config.file=logging.properties -jar jenkins.war 的问题,内容如下:

org.jenkinsci.plugins.durabletask.level=FINE
handlers= java.util.logging.ConsoleHandler

java.util.logging.ConsoleHandler.level=FINE
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter

之后我将nohup(和sh...)从C:\Program Files\Git\usr\bin 添加到PATH。


即使在 Docker 设置中将驱动器 C: 设置为共享驱动器后,情况也没有好转。

$ docker run -t -d -u 197609:197121 \
-w C:\Users\A\.jenkins\workspace\Multibranch_pipeline_master@2 \
-v C:\Users\A\.jenkins\workspace\Multibranch_pipeline_master@2:C:\Users\A\.jenkins\workspace\Multibranch_pipeline_master@2:rw,z \
-v C:\Users\A\.jenkins\workspace\Multibranch_pipeline_master@2@tmp:C:\Users\A\.jenkins\workspace\Multibranch_pipeline_master@2@tmp:rw,z \
-e ******** ... \
maven:3.3.3 cat

java.io.IOException: Failed to run image 'maven:3.3.3'. 
  Error: docker: Error response from daemon: the working directory 
  'C:\Users\A\.jenkins\workspace\Multibranch_pipeline_master@2' is invalid, 
  it needs to be an absolute path.

所以使用的路径应该类似于/C/... 而不是C:\...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    • 2016-05-20
    相关资源
    最近更新 更多