2013-01-09 175 views
1

我得到在运行上詹金斯招聘以下控制台输出:SSH错误127詹金斯

大厦工作区/home/admin/.jenkins/jobs/ramdisk/workspace
[SSH]执行预编译脚本:
./build_script.sh
[SSH]退出状态:127
[SSH]执行后生成的脚本:
[SSH]退出状态:0
成品:成功

当我在终端上手动运行上述脚本时,它很好。 你可以请指导什么可能是这里的问题?

+0

在詹金斯和自己运行脚本之间有什么区别?是用户,路径还是机器还是水手?其他? –

+0

当我直接在我的机器上运行时,./build_script成功运行写入其中的所需指令。 但通过Jenkins,它(./build_script.sh)给出[SSH]退出状态:127,并且不执行脚本中提到的任何内容。 –

回答

2

首先,当您在终端上手动运行脚本时,您也可能会得到退出状态127,但由于您没有检查终端的退出状态,因此您不会注意到它。

詹金斯假定只有退出代码0意味着成功。任何其他退出代码意味着某种失败。如果你的build_script.sh以非标准的方式使用退出代码,它会让Jenkins认为它失败了。

执行直接在机器上执行以下操作:

./build_script.sh 
echo $? 

确保你的脚本命令后立即做echo命令,而不会做别的。这将在命令行上打印出口代码。在这里回答你所得到的。其次,在文本编辑器(vim,nano,无论您使用什么)中打开build_script.sh并搜索exit 127。如果找到它,请查看它从哪个块中退出。如果您在阅读脚本时遇到困难,请将脚本的内容(或者您在其中找到的块)粘贴到此处,然后我们可以告诉您脚本认为它需要退出的原因。