Batch file Jenkins-批处理等待进程启动,如果进程挂起,则将其杀死
我在Windows上使用Jenkins,希望运行csscript来启动应用程序并执行自动测试,现在我想创建一个超时,以防应用程序运行超过30分钟,它将被终止 我有一个批处理脚本:首先创建一个FOR循环,等待应用程序启动,然后创建另一个FOR循环,检查应用程序是否启动超过25分钟 问题是我在第一个循环中遇到了这个错误 进程泄漏的文件描述符。有关更多信息,请参阅 我读了维基上的信息,但不知道如何解决我的问题 请帮忙Batch file Jenkins-批处理等待进程启动,如果进程挂起,则将其杀死,batch-file,jenkins,Batch File,Jenkins,我在Windows上使用Jenkins,希望运行csscript来启动应用程序并执行自动测试,现在我想创建一个超时,以防应用程序运行超过30分钟,它将被终止 我有一个批处理脚本:首先创建一个FOR循环,等待应用程序启动,然后创建另一个FOR循环,检查应用程序是否启动超过25分钟 问题是我在第一个循环中遇到了这个错误 进程泄漏的文件描述符。有关更多信息,请参阅 我读了维基上的信息,但不知道如何解决我的问题 请帮忙 start cscript //nologo D:\tets.vbs FOR /L
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
命令。而不是:启动cscript//nologo D:\tets.vbs
使用
在%time%启动cscript//nologo D:\tets.vbs
您必须计算下一个
%time%
(以分钟为单位),显然作业必须等待该分钟开始,因此最多延迟1秒,最糟糕的延迟59秒。谢谢您的建议,但如果超时,我希望Jenkins运行下一个csscript,而不是中止整个构建HMMM,您可以发送一个如何在批处理文件中实现这一点的示例吗?类似于FOR/F“usebackq tokens=2 delims=:”%%a in(`time/T`)DO(SET/a“time=%%a+1”)
但您必须考虑从第59分钟滚动到下一个小时,等等。第12个小时,滚动到1或13分钟,取决于您的本地语言,等等