Jenkins无法运行exe批处理命令?

问题描述 投票:1回答:3

最终尝试运行某些NUnit Web测试,但我发现Jenkin的测试将在运行批处理命令path\to\nunit.exe之前停止。因此,我只是尝试运行一个包含单个构建步骤的新作业:执行Windows批处理命令C:\Windows\system32\calc.exe。这是我的控制台输出:

由匿名用户启动

在工作空间C:\ Program Files(x86)\ Jenkins \ jobs \ [我的工作] \ workspace中构建 [工作区] $ cmd / c调用C:\ Windows \ TEMP \ hudson8921839713501090632.bat

C:\ Program Files(x86)\ Jenkins \ jobs \ [我的工作] \工作区> C:\ Windows \ system32 \ calc.exe

并且它一直挂着,直到我断掉为止。不用说,此命令在命令提示符下运行良好。另外,未打开新进程的命令在Jenkins中可以正常运行(例如,dir)。我不知道在cmd.exe中运行批处理命令与通过Jenkins运行它们之间有什么区别。我找不到Google搜索为jenkins cannot open exe的任何与远程相关的信息。任何建议表示赞赏。

编辑:

[在实践Shiva的建议时,我在执行Jenkins工作时尝试观察正在运行的过程。如果我没有在命令前加start,则calc.exe会运行,但界面不会显示。一旦我杀死詹金斯的工作,计算器也将被杀死。如果我确实包含start,则除了詹金斯作业自己完成并且作业结束后计算器继续运行之外,其他所有内容都相同。这是新的日志:

由匿名用户启动 在工作空间C:\ Program Files(x86)\ Jenkins \ jobs \ First Job \ workspace中构建 [工作区] $ cmd / c调用C:\ Windows \ TEMP \ hudson8285328547956378876.bat

C:\ Program Files(x86)\ Jenkins \ jobs \ First Job \ workspace> 开始 C:\ Windows \ system32 \ calc.exe

C:\ Program Files(x86)\ Jenkins \ jobs \ First Job \ workspace>退出0 处理泄漏的文件描述符。有关更多信息,请参见http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build。 已完成:成功

尽管这是不同的行为,但我不确定它是否会提供进一步的启示。为什么我不能与正在运行的进程进行交互?

可能相关:Jenkins won't execute correctly a command from a .bat

batch-file jenkins cmd exe
3个回答
5
投票

您无法通过作为服务运行的Jenkins打开Windows进程。您必须通过控制台命令Jenkins运行java -jar "C:\Program Files (x86)\Jenkins\jenkins.war" --httpPort=[your desired available port number]。然后,当Jenkins在您的控制台中运行时,您应该能够在localhost:[您的端口号]的浏览器中对其进行访问。现在,您可以继续打开计算器以及所需的其他可执行文件。

https://wiki.jenkins-ci.org/display/JENKINS/Starting+and+Accessing+Jenkins


0
投票

在运行詹金斯服务时为我工作。

cmd.exe /C .\db\your_bat.bat 

0
投票

我在詹金斯通过服务运行NI TestStand时遇到了类似的问题。正如@cellardweller所说,在cmd提示符下运行jenkins.war会创建一个全新的jenkins安装,但它给了我一个很好的解决方案。如果有任何TestStand用户与Jenkins纠缠不清,请发布此帖子。 TestStand纯粹是带有GUI的Windows应用程序,非常期望Jenkins服务无法执行它。

© www.soinside.com 2019 - 2024. All rights reserved.