在bash脚本中,我处理以下不同的信号:
#!/bin/bash
sighdl ()
{
echo "signal caught"
#do something
exit 0
}
trap sighdl SIGKILL SIGINT SIGTERM
上面的代码正确处理了以下事件的信号:
kill pid
pkill scriptname
对于
kill -9 pid
,它不会调用sighdl
。根据我的理解(如果我没记错的话),kill -9
发送SIGKILL信号。任何想法?
最佳答案
你不能这样做。是9是SIGKILL
,并且出于安全原因,Unix设计上不允许任何脚本/程序捕获SIGKILL
。否则,任何脚本都会捕获并忽略SIGKILL,这将使OS无法终止该脚本。
关于linux - 为什么我在bash中的kill -9命令上没有收到信号SIGKILL?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22807714/