zoukankan      html  css  js  c++  java
  • [进程]kill 9和15,以及pkill, killall

    转自:https://www.cnblogs.com/liuhouhou/p/5400540.html

    大家对kill -9 肯定非常熟悉,在工作中也经常用到。特别是你去重启tomcat时。可是多半看来,我们对-9的理解只是表面而已。

    很少有人(包括我)认真的去了解一下 kill -n 这个n到底是什么东东。自我批评一下。

    好吧。我们来好好的认识一下这个熟悉的陌生人。

    1. kill

    1)kill

    从help中可以清晰的看到 -n 指的是 信号编号,那问题来了,“信号编号”是哪位大神???

    2)kill -l(查看Linux/Unix的信号变量)

    这么多呀!! 今天就单独说一下SIGKILLSIGTERM

    3)(kill pid) 、( kill -15 pid)

    系统会发送一个SIGTERM的信号给对应的程序。当程序接收到该signal后,将会发生以下的事情

    1. 程序立刻停止
    2. 当程序释放相应资源后再停止
    3. 程序可能仍然继续运行

          大部分程序接收到SIGTERM信号后,会先释放自己的资源,然后在停止。但是也有程序可以在接受到信号量后,做一些其他的事情,并且这些事情是可以

          配置的。如果程序正在等待IO,可能就不会立马做出相应。

      也就是说,SIGTERM多半是会被阻塞的、忽略。

    4)kill  -9 pid

    你不是可以不响应 SIGTERM吗??那好,我给你下一道必杀令,我看你还不乖乖的。多半admin会用这个命令

    不过,也不是所有的程序都会乖乖听话,总有那些状态下的程序无法立刻相应。

     2.pkill

    pkill和kill也有同样的格式, 只不过指定的是进程名,pkill -signal process_name, signal的值和kill -l显示的相同,默认15,强制的话可以指定9

    如下可以等同, kill -9 `pidof process_name`和pkill -9 process_name

     3.killall

    当ps -e里面存在多个相同的进程名而对应拥有着不同的进程号,kill则只能杀死1个进程,其他相同名称的进程仍然存在,而pkill和killall,则可以一次杀死所有拥有相同名称的进程. killall和kill, pkill一样可以使用-signal, 也就是-9, -15. 他和pkill的用法几乎相同,当然pkill可以指定非完整名称,而killall则必须指定完整进程名称。

    Attention: 不管是kill还是pkill, 在执行kill -9之前,最好执行kill -15给进程一次自己杀死自己的机会,这样可以清楚一些文件或者恢复一些状态,否则可能会留一些corrupt文件,从而影响进程的再次启动。

  • 相关阅读:
    Read-Copy Update Implementation For Non-Cache-Coherent Systems
    10 华电内部文档搜索系统 search04
    10 华电内部文档搜索系统 search05
    lucene4
    10 华电内部文档搜索系统 search01
    01 lucene基础 北风网项目培训 Lucene实践课程 索引
    01 lucene基础 北风网项目培训 Lucene实践课程 系统架构
    01 lucene基础 北风网项目培训 Lucene实践课程 Lucene概述
    第五章 大数据平台与技术 第13讲 NoSQL数据库
    第五章 大数据平台与技术 第12讲 大数据处理平台Spark
  • 原文地址:https://www.cnblogs.com/aaronLinux/p/8939924.html
Copyright © 2011-2022 走看看