从Jenkins运行批处理文件挂起并且不会返回到Jenkins作业

时间:2015-02-25 22:44:08

标签: windows batch-file jenkins cmd

我在Jenkins作业配置中使用“在构建运行后通过SSH发送文件或执行命令”选项。我在远程服务器上运行.bat文件。 .bat文件正在启动身份验证服务器。身份验证服务器需要在远程服务器上保持运行状态。

身份验证服务器随附.bat文件以启动和停止服务器。当我运行交付的.bat文件时,我的jenkins作业挂起并且永远不会完成。名为startAuth.bat的交付.bat文件如下所示:

call java -jar Auth.jar db migrate Auth.yml
call java -jar Auth.jar server Auth.yml

根据一些最终用户限制,我无法修改startAuth.bat文件,因此我创建了另一个.bat文件来调用名为runStartAuth.bat的startAuth.bat。它看起来像这样:

cd c:\tmp
start runStartAuth.bat
exit /b

我的想法是使用“start”,.bat应该在一个单独的进程中运行,一个可以保持运行直到下一个Jenkins作业运行,并且调用.bat将以exit / b行退出。不幸的是,詹金斯的工作似乎忽略了退出,只是旋转和旋转。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我真的不是Jenkins的专家......但我认为,因为你的批处理文件的奴隶代理JVM包装器知道子进程尚未完成,所以它不会将控制权返回给执行者。 / p>

相反,您可以尝试在Jenkins从属节点配置上使用相同的命令吗?我相信你会在slave节点的Advanced部分有slave launcher prefix命令。