简体   繁体   中英

How can an ANT build script kill a Windows process?

I'm working on extending an ANT build script to allow a TeamCity build agent to run Selenium tests.

In doing so there is a server required to start with selenium which isn't shutdown at the end. So I added an extra target to execute a taskkill on the exe name at the end of every TC build.

Does taskkill need the absolute path to the exe, because the following isn't working;

<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>

The process seems to have a few children which is why I've gone with /f /t but as I say, none of them shutdown at the moment.

Well that was easy;

<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>

This is an old post and normally I use the timeout="milliseconds" , but for a long running process, I have found that the best way of killing an Ant launched process (especially java.exe threads within Eclipse) is to use pskill.exe .

Just load pskill64.exe into the project directory and run the following Ant build.

<project name="project" default="shutdown.java.tasks" basedir="../">
<target name="shutdown.java.tasks">

    <exec executable="path.to.pskill.in.your.project\pskill64">
        <arg value="java.exe" />
    </exec>

</target>

Typical output is:

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.

BUILD SUCCESSFUL Total time: 387 milliseconds

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM