Jenkins pipeline sh 在 Windows 上失败并显示“无法运行程序 nohup”

2023-12-10

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

我的 Jenkins 管道有以下阶段:

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

错误消息是:

[C:\Program Files (x86)\Jenkins\workspace\pipelineascode] 运行 shell 脚本 无法运行程序“nohup”(在目录“C:\Program Files (x86)\Jenkins\workspace\pipelineascode”中):CreateProcess error=2,Le fichier spécifié est introuvable

我尝试更改 Jenkins 参数->shell 可执行文件

C:\Windows\System32\bash.exe

但同样的错误...

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


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

主要原因看起来像shWindows 不支持该步骤。您可以使用bat或安装Cygwin例如。

尽管如此,上一个链接中提出了两种解决方案,建议您执行以下步骤:

  • Install git-bash
  • 确保 Git\bin 文件夹(即:C:\Program Files\Git\bin) 位于全局搜索路径中,以便 Jenkins 找到 sh.exe
  • Make nohup available for Jenkins, doing the following in git-bash (adapt your paths accordingly) :
    • 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"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jenkins pipeline sh 在 Windows 上失败并显示“无法运行程序 nohup” 的相关文章

随机推荐