从Jenkins运行批处理文件时卡住不返回到Jenkins作业。

3
我正在使用Jenkins作业配置中的“构建完成后通过SSH发送文件或执行命令”选项。我在远程服务器上运行一个.bat文件,该文件启动了一个认证服务器。认证服务器需要保持在远程服务器上运行。
认证服务器附带有一个用于启动和停止服务器的.bat文件。当我运行提供的startAuth.bat文件时,我的Jenkins作业会挂起并永远无法完成。提供的startAuth.bat文件的内容如下:
call java -jar Auth.jar db migrate Auth.yml
call java -jar Auth.jar server Auth.yml

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

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

我认为使用“start”命令可以在单独的进程中运行.bat文件,并保持该进程一直运行,直到下次Jenkins作业运行时才结束,而调用的.bat文件会以exit /b行退出。不幸的是,Jenkins作业似乎忽略了这个退出命令,一直在旋转。

我做错了什么?

1个回答

0

我并不是Jenkins的专家...但我认为由于从机代理JVM包装器知道子进程尚未完成,它将不会将控制权返回给执行程序。

相反,您可以尝试在Jenkins从节点配置中使用相同的命令吗?我相信您将在从节点的高级部分中拥有从机启动器前缀命令。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接