我有用于持续集成的 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 的路径和任何必要的参数(如果选择第一个选项,则输入脚本的路径)。