我在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行退出。不幸的是,詹金斯的工作似乎忽略了退出,只是旋转和旋转。
我做错了什么?
答案 0 :(得分:0)
我真的不是Jenkins的专家......但我认为,因为你的批处理文件的奴隶代理JVM包装器知道子进程尚未完成,所以它不会将控制权返回给执行者。 / p>
相反,您可以尝试在Jenkins从属节点配置上使用相同的命令吗?我相信你会在slave节点的Advanced部分有slave launcher prefix命令。