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

时间:2013-04-26 21:31:55

标签: batch-file jenkins cmd exe

最终尝试运行一些NUnit网络测试,但我发现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运行它们之间有什么区别。我在jenkins cannot open exe的Google搜索中找不到任何远程相关信息。任何建议都表示赞赏。

编辑:

在练习Shiva的建议时,我尝试在运行Jenkins工作时观察正在运行的进程。如果我不在命令前面加start,则calc.exe会运行,但界面不会显示。一旦我杀了詹金斯的工作,计算器也会被杀死。如果我确实包括start,那么一切都是相同的,除了jenkins工作自己完成并且计算器在工作结束后继续运行。这是新的日志:

  

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

     

C:\ Program Files(x86)\ Jenkins \ jobs \ First Job \ workspace> start 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

3 个答案:

答案 0 :(得分:3)

您无法通过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

答案 1 :(得分:0)

在运行jenkins作为服务时,它对我有用。

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

答案 2 :(得分:0)

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