cel*_*ler 2 cmd exe batch-file jenkins
最终尝试运行一些NUnitWeb 测试,但我发现 Jenkins 会在运行批处理命令之前停止path\to\nunit.exe。所以我只是尝试运行一个包含单个构建步骤的新作业:执行 Windows 批处理命令C:\Windows\system32\calc.exe。这是我的控制台输出:
由匿名用户发起
在工作区 C:\Program Files (x86)\Jenkins\jobs\[my job]\workspace [workspace] $ cmd /c call C:\Windows\TEMP\hudson8921839713501090632.bat 中构建
C:\Program Files (x86)\Jenkins\jobs\[我的工作]\workspace>C:\Windows\system32\calc.exe
它挂在那里,直到我切断。不用说,这个命令在命令提示符下运行良好。此外,不打开新进程的命令在Jenkins. 我不知道在 cmd.exe 中运行批处理命令和通过 Jenkins 运行它们有什么区别。我无法通过谷歌搜索找到任何远程相关信息jenkins cannot open exe。任何建议表示赞赏。
编辑:
在实践 Shiva 的建议时,我尝试在运行 Jenkins 工作时观察运行过程。如果我不在命令前面加上start,则calc.exe运行但不显示界面。一旦我杀死了詹金斯的工作,计算器也会被杀死。如果我确实包含start,那么除了詹金斯作业自行完成并且计算器在作业结束后继续运行之外,一切都相同。这是新日志:
由匿名用户启动 构建在工作区 C:\Program Files (x86)\Jenkins\jobs\First Job\workspace [workspace] $ cmd /c call 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>exit 0 处理泄露的文件描述符。有关更多信息,请参阅http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build完成:成功
虽然这是不同的行为,但我不确定它是否提供了进一步的启示。为什么我不能与正在运行的进程交互?
您无法通过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