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文件,从而影响进程的再次启动。

  • 相关阅读:
    [函數] Firemonkey Android 取得系统参数设定的字型大小
    [示例] 访问类的私有属性
    [修正] 移动平台曲线不平滑的问题(如:TRectangle, TPath...等)
    [修正] Firemonkey TSelection 控件等比缩放时,左下角拉动问题
    [修正] iOS 10 使用相机及相簿闪退的问题修正
    报表之表头
    报表字段刷新
    tfs解除锁
    sql server中排名的问题
    TFS查询无法在Excel中打开
  • 原文地址:https://www.cnblogs.com/aaronLinux/p/8939924.html
Copyright © 2011-2022 走看看