Jenkins cannot run exe batch commands?

旧街凉风 提交于 2019-12-10 11:53:40

问题


Ultimately trying to run some NUnit web tests, but I found that Jenkin's would stop before running the batch command path\to\nunit.exe. So I just tried running a new job that consists of a single build step: Execute Windows batch command C:\Windows\system32\calc.exe. Here is my console output:

Started by user anonymous

Building in workspace C:\Program Files (x86)\Jenkins\jobs\[my job]\workspace [workspace] $ cmd /c call C:\Windows\TEMP\hudson8921839713501090632.bat

C:\Program Files (x86)\Jenkins\jobs\[my job]\workspace>C:\Windows\system32\calc.exe

and there it hangs until I cut if off. Needless to say, this command runs fine in command prompt. Also, commands that do not open new processes run fine (e.g. dir) in Jenkins. I don't know what the difference is between running batch commands in cmd.exe and running them through Jenkins. I cannot find any remotely relevant information with a google search of jenkins cannot open exe. Any advice is appreciated.

Edit:

While practicing Shiva's suggestion, I tried observing the running processes while I ran my Jenkins job. If I do not precede the command with start, then calc.exe does run but the interface does not display. Once I kill the jenkins job, calculator is killed as well. If I do include start, then everything is the same except the jenkins job finishes on its own and the calculator continues to run after the job is over. Here is the new log:

Started by user anonymous Building in workspace 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>start C:\Windows\system32\calc.exe

C:\Program Files (x86)\Jenkins\jobs\First Job\workspace>exit 0 Process leaked file descriptors. See http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build for more information Finished: SUCCESS

Although this is different behavior, I'm not sure that it offers further enlightenment. Why can I not interact with the running processes?

Possibly related: Jenkins won't execute correctly a command from a .bat


回答1:


You cannot open windows processes through Jenkins running as a service. You have to run Jenkins through the console command java -jar "C:\Program Files (x86)\Jenkins\jenkins.war" --httpPort=[your desired available port number]. Then, while Jenkins is running in your console, you should be able to access it in a browser at localhost:[your port number]. Now you may go forth and open calculators and whatever other executables you want.

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




回答2:


it worked for me while running jenkins as a service.

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


来源:https://stackoverflow.com/questions/16245544/jenkins-cannot-run-exe-batch-commands

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!