为什么我不在bash中获取kill -9命令的SIGKILL信号?

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

#!/bin/bash sighdl () { echo "signal caught" #do something exit 0 } trap sighdl SIGKILL SIGINT SIGTERM 

以上代码正确处理以下活动的信号:

  1. Ctrl + C
  2. kill pid
  3. pkill scriptname

对于kill -9 pid它不叫sighdl 。 根据我的理解(如果我没有错) kill -9发送SIGKILL信号。

任何想法?

你不能这样做。 是的9是SIGKILL和Unix系统在设计上不允许任何脚本/程序由于安全原因而陷入SIGKILL 。 否则,任何脚本都可以捕获并忽略SIGKILL,这将使操作系统无法终止该脚本。