在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信号。
有什么想法吗?
答案 0 :(得分:12)
你做不到。是9是SIGKILL
并且由于安全原因,Unix系统设计不允许任何脚本/程序陷阱SIGKILL
。否则任何脚本都可以捕获&忽略SIGKILL,这将无法通过操作系统终止该脚本。