为什么我没有在bash中使用kill -9命令获取SIGKILL信号?

时间:2014-04-02 09:53:23

标签: linux bash signals

在bash脚本中我处理不同的信号如下:

#!/bin/bash

sighdl () 
{
  echo "signal caught"
  #do something
  exit 0
}

trap sighdl SIGKILL SIGINT SIGTERM

以上代码处理信号适合以下活动:

  1. 控制 + C
  2. kill pid
  3. pkill scriptname
  4. 对于kill -9 pid,它不会调用sighdl。根据我的理解(如果我没有错)kill -9发送SIGKILL信号。

    有什么想法吗?

1 个答案:

答案 0 :(得分:12)

你做不到。是9是SIGKILL并且由于安全原因,Unix系统设计不允许任何脚本/程序陷阱SIGKILL。否则任何脚本都可以捕获&忽略SIGKILL,这将无法通过操作系统终止该脚本。