为什么IE会在Jenkins Job中自动关闭?

时间:2014-03-31 09:24:27

标签: windows batch-file jenkins

我在jenkins工作中遇到一个问题,我想jenkins可以自动启动IE浏览器访问网站。奴隶是一个Win7系统,这个IE浏览器的插件只允许一个实例。所以我的工作如下:

@echo off

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255
set isIE=0
for /f %%i in ('tasklist') do (
    rem echo %%i
    if  %%i == iexplore.exe (
       set isIE=1
    )
)

if %isIE% == 1 (
echo "Find IE process, kill them"
taskkill /F /IM "iexplore.exe"
) else (
   echo "No IE process"
)

echo %date% %time%
start iexplore.exe "http://www.example.com"

sleep 5

tasklist | findstr iexplore.exe
echo %date% %time%

你可以看到,在我启动IE浏览器之后,作业将等待5秒,然后通过命令检查IE进程:[tasklist | findstr iexplore.exe]。它会打印IE进程信息以进行故障排除。

但是,如果我在作业中添加此命令。作业将在作业执行后关闭IE浏览器。我不知道为什么?如果我删除这个片段,该作业将启动IE并永远不会关闭它...我不知道它,谁可以帮助我找到根本原因?感谢..

1 个答案:

答案 0 :(得分:1)

Jenkins将在作业完成后终止所有子进程。这是设计和 further explained here

您可以通过以下方式启动Jenkins来全局禁用此功能:
-Dhudson.util.ProcessTree.disable=true
但最好在每个工作的基础上更好地使用该链接中提供的解决方法之一。

您还可以阅读这篇文章,了解从Jenkins启动.exe流程的一些想法,只需将excel替换为IE
Open Excel on Jenkins CI