我在Windows上使用Jenkins并希望运行启动应用程序并执行自动测试的csscript,现在我想创建一个超时,以防应用程序运行超过30分钟它将被杀死,< / p>
我有这个批处理脚本:首先我创建一个等待应用程序启动的FOR循环,然后创建另一个FOR循环,检查应用程序是否超过25分钟。
问题是我在第一个循环中遇到此错误 处理泄露的文件描述符。有关详细信息,请参阅http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build 我在维基上阅读了这些信息,但并不真正了解如何解决我的问题 请帮忙
start cscript //nologo D:\tets.vbs
FOR /L %%A IN (1,1,20) DO (
echo Round number %%A
REM find the running executable
tasklist | find /I /C "App.exe" > nul
echo ERRORLEVEL is !ERRORLEVEL!
IF !ERRORLEVEL! EQU 0 EXIT
rem wait 3 seconds
ping 1.1.1.1 -n 1 -w 3000 > nul
)
FOR /L %%U IN (1,1,50) DO (
echo Round number %%U
REM find the running executable
tasklist | find /I /C "App.exe" > nul
echo ERRORLEVEL is !ERRORLEVEL!
if !ERRORLEVEL! EQU 1 EXIT
rem wait 30 seconds
ping 1.1.1.1 -n 1 -w 30000 > nul
)
echo TASKILL
taskkill /f /im App.exe
答案 0 :(得分:0)
如果您要暂停构建,请使用 Build-timeout plugin
修改强>
您链接的文章的建议是使用at
命令。而不是:
start cscript //nologo D:\tets.vbs
使用
at %time% start cscript //nologo D:\tets.vbs
您将不得不计算下一个%time%
(以分钟为单位),显然该作业必须等待该分钟开始,所以最好延迟1秒,更糟糕的是延迟59秒。