2013-04-26 163 views
1

最终尝试运行一些NUnit网络测试,但我发现在运行批处理命令path\to\nunit.exe之前,Jenkin会停止。所以我试着运行一个新的作业,它包含一个构建步骤:执行Windows批处理命令C:\Windows\system32\calc.exe。下面是我的控制台输出:Jenkins无法运行exe批处理命令?

由用户匿名开始

建设工作区C:\ Program Files文件(x86)的\詹金斯\工作\ [我的工作] \ workspace下 [工作区] $ CMD/C调用C:\ WINDOWS \ TEMP \ hudson8921839713501090632.bat

C:\ Program Files文件(x86)的\詹金斯\工作\ [我的工作] \工作区> C:\ WINDOWS \ SYSTEM32 \ CALC.EXE

那里它挂起,直到我切断,如果关闭。不用说,这个命令在命令提示符下运行正常。另外,在Jenkins中,不打开新进程的命令也可以正常运行(例如dir)。我不知道在cmd.exe中运行批处理命令和通过Jenkins运行它们之间有什么区别。我无法通过谷歌搜索jenkins cannot open exe找到任何远程相关信息。任何建议表示赞赏。

编辑:

当实践湿婆的建议下,我试着观察正在运行的进程,而我跑我的詹金斯的工作。如果我没有在start之前执行该命令,则calc.exe确实会运行,但不会显示该界面。一旦我杀死詹金斯的工作,计算器也会被杀死。如果我确实包含start,那么除jenkins作业完成之外,所有内容都是相同的,并且计算器在作业结束后继续运行。这里是新的日志:

在工作区下开始由用户匿名 大厦:\程序文件(x86)\詹金斯\工作\的第一份工作\ workspace下 [工作区] $ CMD/C调用C:\ WINDOWS \ TEMP \ hudson8285328547956378876.bat

C:\ Program Files文件(x86)的\詹金斯\ \工作第一份工作\工作区>开始 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

+0

我得走了,所以我会马上说,我认为在这个网站会变成了一个答案在这里搜索詹金斯+批的,我依稀记得一些关于詹金斯服务具有的权利运行进程...祝你好运 – 2013-04-26 21:49:33

+0

从'开始'帮助调用?也就是说,从命令提示符 – 2013-04-27 14:41:55

+0

调用'start C:\ Windows \ system32 \ calc.exe'我见过类似的问题。据我所知,你不能在Jenkins内与Windows UI交互。顺便说一句,如果您要查看Jenkins机器的桌面,您可能会看到计算窗口在其上打开,直到您终止该作业。 – jwernerny 2013-04-29 14:46:03

回答

4

你不能打开的窗口过程通过Jenkins作为服务运行。您必须通过控制台命令java -jar "C:\Program Files (x86)\Jenkins\jenkins.war" --httpPort=[your desired available port number]运行Jenkins。然后,当Jenkins在您的控制台中运行时,您应该能够通过localhost的[浏览器] [您的端口号]在浏览器中访问它。现在你可以前往打开计算器和任何你想要的其他可执行文件。

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

-1

它为我工作,同时运行詹金斯作为一个服务。

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