詹金斯-批量等待,直到进程结束,如果挂起就终止



我在Windows上使用Jenkins,想运行csscript来启动应用程序并执行自动测试,现在我想创建一个超时,这样在应用程序运行超过30分钟的情况下,它就会被杀死,

我有一个批处理脚本:首先我创建一个等待应用程序启动的FOR循环,然后创建另一个检查应用程序是否启动超过25分钟的FOR循环。

问题是我在第一个循环中得到了这个错误处理泄漏的文件描述符。看见http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processs+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

如果您想暂停构建,请使用构建超时插件

编辑:
对于您链接的文章,建议使用at命令。而不是:
start cscript //nologo D:tets.vbs
使用
at %time% start cscript //nologo D:tets.vbs
您必须计算下一个%time%(以分钟为单位),显然作业必须等待该分钟才能开始,所以最多延迟1秒,更糟的是延迟59秒。

最新更新