Jenkins SSH Windows 节点 bash 错误

Jenkins SSH Windows 节点 bash 错误

我有用于持续集成的 Jenkins 服务器,我想添加另一个节点。节点是运行 Bitvise SSH 服务器的 Win 7 站。该 Win 7 站上安装了 Cygwin 32 和 64 位(用于测试目的)。

当我尝试在 Jenkins 中添加节点时收到消息:

bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell 它什么也没告诉我(即使经过一些谷歌搜索)。

我尝试了几个 SSH 服务器,但没有一个有为特定用户打开不同 shell 终端的选项。我尝试使用不同的 shell,但没有成功。如果我使用 Cygwin SSH 服务器,一切都会正常,但我无法在同一端口上运行 2 个 SSH 服务器

一种解决方案是在不同的端口上运行 Cygwin 32 位 SSH 服务器和 Cygwin 64 位 SSH 服务器,但这种解决方案不太灵活。

有没有人遇到过与詹金斯相关的类似错误?

谢谢!

答案1

第一个选项 - 检查是否C:\cygwin\bin\sh.exe在 PATH 中(如果没有,请在系统配置中设置 sh 位置),您需要做的就是在作业配置的“执行 shell 脚本”框中输入 shell 脚本。

如果行不通, 尝试这个:

默认的 cygwin.bat 文件会打开一个 shell,但不向其传递任何参数。您可以复制并修改它以从 hudson 调用 cygwin 脚本。

例如,通过更改以下行将 cygwin.bat 复制到 cygwin-hudson.bat:

bash --login -i

类似于:

bash --login -i %*

或者

bash --login -i "C:\path\to\your\script.sh"

使用第一个选项,您可以使用批处理文件来调用任何脚本(您可以在 Hudson 中的作业配置中定义该脚本)。使用第二个选项,您可以让批处理文件调用您的特定脚本。

然后在 Hudson 中创建一个作业,并在 Build 部分选中“执行 Windows 批处理命令”。输入 cygwin-hudson.bat 的路径和任何必要的参数(如果选择第一个选项,则输入脚本的路径)。

相关内容