设为首页 加入收藏

TOP

计算机二级辅导:正确地killjava进程
2014-11-18 00:32:13 】 浏览:5913
Tags:计算机 二级 辅导 正确 killjava 进程

  在linux/unix下,你会怎么中止一个java应用或进程?


  多数人可能会回答 kill -9 pid,这是一种在多数情况下正确的做法。不过本文打算阐述使用kill -9带来的一些问题,并给出另一种标准的kill方式。


  标准中断信号


  在Linux信号机制中,存在多种进程中断信号(Linux信号列表 )。其中比较典型的有 SIGNKILL(9) 和 SIGNTERM(15).


  SIGNKILL(9) 和 SIGNTERM(15) 的区别在于:


  SIGNKILL(9) 的效果是立即杀死进程. 该信号不能被阻塞, 处理和忽略。


  SIGNTERM(15) 的效果是正常退出进程,退出前可以被阻塞或回调处理。并且它是Linux缺省的程序中断信号。


  由此可见,SIGNTERM(15) 才是理论上标准的kill进程信号。


  那使用 SIGNKILL(9) 又有什么错呢?


  SIGNKILL(9) 带来的问题


  先看一段程序


  Java代码


  /**


  * Shutdown Hook Presentation


  *


  */


  public class ShutdownHookTest {


  private static final void shutdownCallback() {


  System.out.println("Shutdown callback is invoked.");


  }


  public static void main(String[] args) throws InterruptedException {


  Runtime.getRuntime().addShutdownHook(new Thread() {


  @Override


  public void run() {


  shutdownCallback();


  }


  });


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇计算机二级辅导:java类装载(2) 下一篇计算机二级java辅导:JSP自定义标签

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目