`
ivywang
  • 浏览: 33412 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

用Ant强杀Java进程

Ant 
阅读更多

强杀进程的方式有很多。如果应用程序需要在多个平台下运行,我们可以为不同的平台编写不同的脚本,然后在整体构建/运行的脚本里去分别调用,但这并不太利于维护。我们可以借助Ant、采用统一的方式去完成这件事情。

 

以强杀Java进程为例,主要思路:

  1. 使用Java自带的jps命令得到所有Java进程的信息
  2. 获得符合要求的Java进程的PID
  3. 调用强杀进程的命令杀死进程

Ant脚本片段:

 

    <property environment="env"/>
    
    <target name="kill-process">
        <!-- 执行Java自带的jps命令,将所有Java进程的信息(包括PID)写入pid.out文件 -->
        <exec executable="${env.JAVA_HOME}/bin/jps" output="pid.out">
            <!-- 用jps命令的参数v,可以获取Java进程的变量信息。
                 如果多个Java进程需要通过变量信息区分,这个参数很有用-->
            <arg value="-v"/>
        </exec>
        
        <!-- 加载pid.out文件,用filterchain定义条件、得到符合条件的PID -->
        <loadfile srcfile="pid.out" property="pid">
            <filterchain>
                <linecontains>
                    <contains value="Bootstrap"/>
                </linecontains>
                <tokenfilter>
                    <replaceregex pattern="^(\d+) Bootstrap (.*)" replace="\1"/>
                    <trim/>
                    <ignoreblank/>
                </tokenfilter>
                <striplinebreaks/>
            </filterchain>
        </loadfile>
        
        <condition property="haveValue">
            <isset property="pid"/>
        </condition>
        
        <antcall target="pidFound"/>
        <antcall target="pidNotFound"/>
        
        <delete file="pid.out"/>
    </target>
    
    <target name="pidFound" if="haveValue">
        <echo>Killing process with PID: ${pid}</echo>
        <!-- 执行强杀进程的命令,这里以Windows自带的tskill为例 -->
        <exec executable="tskill">
            <arg value="${pid}"/>
        </exec>
    </target>
    
    <target name="pidNotFound" unless="haveValue">
        <echo>There is no matched process.</echo>
    </target>
2
0
分享到:
评论
3 楼 masuweng 2012-11-15  
正好研究研究
2 楼 Neoman 2012-11-15  
顶,正是我需要的。之前用ant的 exec 有问题,
1 楼 witcheryne 2012-11-14  
这个脚本给力, 强杀 win  下的tomcat应该很好用.

相关推荐

    ANT和OpenSSH在Java Web数据安全传输中的应用.pdf

    在java Web系统中,常常需要安全地传输文件形式的数据。ANT是开源应用程序构建工具,而OpenSSH则是基于SSH协议、为联网计算机提供加密...将两者相结合,介绍了java Web系统的远程发布方法,讨论了SSH守护进程方式传输文...

    cse7343-courseproject:使用Processing Java对操作系统进程,PCB,队列和内存管理进行模拟

    它使用双链表来表示进程队列,并使用最适合,最适合和最不适合的算法来管理内存。 可视化文件是通过处理库创建的。 如何构建和运行程序 要从源代码构建,请从项目根目录(此目录)执行ant 。 如果您已收到一个zip...

    关于项目的部署JAVA & .NET

    * 应用程序开发进程 * 服务器导航 * 生成进程和服务器日志 * Ant 脚本 * WAR 、EAR 和部署描述符 * 部署工具 * 管理控制台

    第一个RMI的网络应用编程示例--帮助理解EJB的生命周期

    使用步骤: 1. 在下载解压后目录中输入命令:ant build 2. 输入命令cd build 3. 输入命令rmic -v1.2 com.jb.arklis.demo.rmi.RocketImpl 4. 输入命令cd .. 5. 输入命令start rmiregistry 5000 6. 输入命令ant 7. ...

    新版Android开发教程.rar

    的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...

    安卓java读取网页源码-P2P-project:点对点软件

    安卓java 读取网页源码 XX猫-金融类app 2018 年第一个应用程序感谢您的评论。 | | | . 现在,这是我的项目托管 xxcat 用于部署,如果您愿意,请为它加星号 :) 支持 git/svn 版本控制系统。 通过管理员/开发身份进行...

    bosun-jmx:将JMX统计信息输入到Bosunopentsdb

    app-under-test是一个字符串字段,可用于区分输出中的特定java进程(在收集器输出中生成“ appname”的标签/ v。)如果使用属性文件,则需要指定它作为bosun-jmx.jar文件的参数。 对于scollector,您将需要将bosun-...

    Android C++高级编程:使用NDK_Onur Cinar, 于红PDF电子书下载 带书签目录 完整版

    7.2.1 修改示例应用程序使之能够使用Java线程 165 7.2.2 执行Java Threads示例 166 7.2.3 原生代码使用Java线程的优缺点 167 7.3 POSIX线程 168 7.3.1 在原生代码中使用POSIX线程 168 7.3.2 用pthread_create...

    Order_Dispatcher

    Order_Dispatcher 要编译proyect,请在proyect的源目录中运行以下命令:提示符&gt; ant compile jar 要运行proyect,请运行python脚本Launcher.... python Launcher.py 在launcher.ini文件中正确配置每个Java进程的类路径

    MetaEngine:该存储库包含用于UCI引擎的代码,该代码根据其他UCI引擎的建议进行操作

    该程序旨在接收多个UCI引擎的输入,并使用该信息充当UCI引擎。 例如,它可以用于将基于神经网络和/或基于蒙特卡洛的引擎与传统的alpha-beta搜索引擎结合在一起。 概述 MetaEngine配置为将UCI引擎作为子进程运行。 ...

    springboot参考指南

    Ant iv. 13.4. Starter POMs ii. 14. 组织你的代码 i. 14.1. 使用"default"包 ii. 14.2. 定位main应用类 iii. 15. 配置类 目錄 Spring Boot参考指南 2 i. 15.1. 导入其他配置类 ii. 15.2. 导入XML配置 iv. 16. 自动...

    Eclipse权威开发指南2.pdf

    第Ⅰ部分 使 用 Eclipse 第1章 引言 3 1.1 Eclipse作为应用程序开发 工具的宿主...... 4 1.2 不仅仅是工具的宿主,Eclipse 还作为客户端应用程序的 宿主...... 5 1.3 什么是Eclipse?...... 6 1.3.1 工具与应用...

    Eclipse权威开发指南3.pdf

    第Ⅰ部分 使 用 Eclipse 第1章 引言 3 1.1 Eclipse作为应用程序开发 工具的宿主...... 4 1.2 不仅仅是工具的宿主,Eclipse 还作为客户端应用程序的 宿主...... 5 1.3 什么是Eclipse?...... 6 1.3.1 ...

    Eclipse权威开发指南1.pdf

    第Ⅰ部分 使 用 Eclipse 第1章 引言 3 1.1 Eclipse作为应用程序开发 工具的宿主...... 4 1.2 不仅仅是工具的宿主,Eclipse 还作为客户端应用程序的 宿主...... 5 1.3 什么是Eclipse?...... 6 1.3.1 ...

    javaee笔试题-ES2016_14353173:ES2016_14353173

    java ee笔试题 README 14353173 廖瑶雅 一、DOL 框架描述 DOL(The distributed operation layer)是一个用于编写并行应用程序的软件开发框架。DOL允许指定基于计算Kahn进程网络模型的应用程序和具有一个基于SystemC的...

    olfs:Hyrax数据服务器的前端

    启动bes(您可以使用besctl来执行此操作)。确保正在运行一个beslistener进程。一探究竟: git clone https://github.com/OPENDAP/olfs.git建立它: ant server(要发布发行版:蚂蚁服务器-DHYRAX_VERSION = -DOLFS_...

    OPhone应用开发权威指南(黄晓庆)

    2.4.2 用Ant编译项目 28 2.4.3 运行应用程序 28 2.5 OPhone SDK介绍 30 2.5.1 OPhone模拟器 30 2.5.2 模拟SD卡 32 2.5.3 ADB 32 2.5.4 DDMS 33 2.6 小结 34 第3章 OPhone应用程序模型 35 3.1 OPhone应用程序基础 35 ...

    香槟网络系统 G H O S T XP SP3 7.0

    *破解 Tcpip 连接数限制,破解系统主题限制,并集成微软 JAVA 虚拟机。 *集成 DirectX0903,VBVC最新版本运行库。 *系统在完全断网的情况下制作,确保系统更安全。 *采用通过微软数字签名认证驱动并自动识别安装,...

Global site tag (gtag.js) - Google Analytics