当前位置: 首页 > 面试题库 >

Jenkins管道sh失败,并在Windows上“无法运行程序nohup”

史昱
2023-03-14
问题内容

我有Windows 10,我想使用bash for Windows的Jash从Jenkins管道在Jenkinsfile中执行sh命令,但是它不起作用

在Jenkins管道中,我处于以下阶段:

stage('sh how to') {
        steps {
            sh 'ls -l'
        }
    }

错误消息是:

[C:\ Program Files(x86)\ Jenkins \ workspace \
pipelineascode]运行外壳程序脚本无法运行程序“ nohup”(在目录“ C:\ Program Files(x86)\ Jenkins \
workspace \ pipelineascode”中):CreateProcess error = 2 ,不可思议的特殊性

我尝试使用更改Jenkins parameter-> shell可执行文件

C:\ Windows \ System32 \ bash.exe

但同样的错误…

如何使用Windows 10的bash运行sh脚本?


问题答案:

通过快速搜索,您的错误似乎与以下问题有关:JENKINS-33708

主要原因可能sh是Windows不支持该步骤。例如,您可以使用bat或安装Cygwin

但是,在上一个链接中提出了两种解决方案,建议您执行以下步骤:

  • 安装git-bash
  • 确保Git \ bin文件夹(即C:\Program Files\Git\bin:)位于全局搜索路径中,以便Jenkins找到sh.exe
  • 使nohup可用于Jenkins,在git-bash中执行以下操作(相应地调整路径):
    • mklink“ C:\ Program Files \ Git \ bin \ nohup.exe”“ C:\ Program Files \ git \ usr \ bin \ nohup.exe”
    • mklink“ C:\ Program Files \ Git \ bin \ msys-2.0.dll”“ C:\ Program Files \ git \ usr \ bin \ msys-2.0.dll”
    • mklink“ C:\ Program Files \ Git \ bin \ msys-iconv-2.dll”“ C:\ Program Files \ git \ usr \ bin \ msys-iconv-2.dll”
    • mklink“ C:\ Program Files \ Git \ bin \ msys-intl-8.dll”“ C:\ Program Files \ git \ usr \ bin \ msys-intl-8.dll”

根据您的安装,您可能必须使用以下路径:

  • mklink“ C:\ Program Files \ Git \ cmd \ nohup.exe”“ C:\ Program Files \ git \ usr \ bin \ nohup.exe”
  • mklink“ C:\ Program Files \ Git \ cmd \ msys-2.0.dll”“ C:\ Program Files \ git \ usr \ bin \ msys-2.0.dll”
  • mklink“ C:\ Program Files \ Git \ cmd \ msys-iconv-2.dll”“ C:\ Program Files \ git \ usr \ bin \ msys-iconv-2.dll”
  • mklink“ C:\ Program Files \ Git \ cmd \ msys-intl-8.dll”“ C:\ Program Files \ git \ usr \ bin \ msys-intl-8.dll”


 类似资料:
  • 我有Windows10,我想使用bash for Ubuntu for windows从Jenkins管道执行Jenkinsfile中的sh命令,但它不起作用 在我的詹金斯管道中,我有以下阶段: 错误消息为: 如何使用windows 10的bash运行sh脚本?

  • 我有一个Jenkinsfile,其中构建和测试在同一个Slaver上运行。我的要求是,构建必须在一个从站(比如A)上,测试必须在另一个从站(比如B)上运行。 我刚刚设置了奴隶B,我可以看到我的奴隶A和B都在Jenkins- 以下是看到的问题: 1.)在构建阶段成功后,我得到以下错误: " java.lang.NoSuchMethodError:在步骤[archive,bat,build,catch

  • 问题内容: 我能够运行以下shell脚本,但无法从Jenkins管道代码运行。 尝试1。 输出: 尝试2: 尝试过sh“”“ 输出 : 美元符号后的非法字符串体字符;解决方案:要么转义文字美元符号,要么将值表达式括起来 有人能帮我吗? 问题答案: 这应该工作。 您还需要在调用下面的新subshel​​l时转义$

  • 问题内容: 在groovy脚本中(用于jenkins管道):如何运行命令而不是命令? 我尝试了以下方法: 在通话中致电“ ” : 将呼叫替换为呼叫: 附加信息: 我的命令比命令更复杂。 问题答案: 您提供的Groovy脚本正在将结果脚本中的第一行格式化为空白行。shebang告诉脚本使用/ bin / bash而不是/ bin / sh运行,它需要位于文件的第一行,否则它将被忽略。 因此,您应该这

  • 问题内容: 尝试运行我的构建脚本时出现以下错误。 我尝试切换到用户,并且能够顺利运行脚本。我还检查了并尝试重新安装。没运气! CentOS 5/6 PHP 5.4(Zend服务器) jenkins1.477 PHP QA组件(最新) 问题答案: 我终于想通了…检查变量在这种情况下没有帮助。运行Jenkins作业时不会执行各种Shell启动文件,因此未正确填充变量。可以通过以下三个步骤来纠正此问题:

  • 注意2:在Jenkins/Configuration/under shell中,我提到了C:\cygwin\bin\mintty.exe 下面是输出 $C:\cygwin\bin\cygpath-w C:\cygwin\bin\mintty.exe[workspace]$C:\cygwin\bin\mintty.exe-xe D:\539707\tomcat-7.0.12\temp\hudson4