ANT构建脚本如何杀死Windows进程?



我正在扩展ANT构建脚本,以允许TeamCity构建代理运行Selenium测试。

在这样做的时候,有一个服务器需要从selenium开始,而不是在结束时关闭。因此,我添加了一个额外的目标,在每个TC构建结束时对exe名称执行taskkill。

taskkill是否需要exe的绝对路径,因为以下内容不起作用;

<target name="shutdown.server" depends="init.properties" description="Shutdown the server after Selenium">
    <exec osfamily="windows" executable="cmd.exe" spawn="true">
        <arg line="taskkill /f /t /im app.exe"/>
    </exec>
</target>

这个过程似乎有几个孩子,这就是为什么我选择了/f /t,但正如我所说的,目前没有一个关闭。

这很简单;

<target name="shutdown.server" depends="init.properties" description="Shutdown the server after Selenium">
    <exec executable="taskkill">
        <arg line="/im app.exe /f /t"/>
    </exec>
</target>

这是一个旧的帖子,通常我使用timeout="milliseconds",但对于一个长时间运行的进程,我发现杀死一个Ant启动的进程(特别是在Eclipse中的java.exe线程)的最好方法是使用pskill.exe。

只需将pskill64.exe加载到项目目录中,并运行以下命令Ant build。

<project name="project" default="shutdown.java.tasks" basedir="../">
<target name="shutdown.java.tasks">
    <exec executable="path.to.pskill.in.your.projectpskill64">
        <arg value="java.exe" />
    </exec>
</target>

典型输出为:

shutdown.java:
 [exec] PsKill v1.16 - Terminates processes on local or remote systems
 [exec] Copyright (C) 1999-2016  Mark Russinovich
 [exec] Sysinternals - www.sysinternals.com
 [exec] 8 processes named java.exe killed.

构建成功总时间:387毫秒

相关内容

  • 没有找到相关文章