#!/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,这将使操作系统无法终止该脚本。