Reputation: 25865
In bash script I handle different signal as follows:
#!/bin/bash
sighdl ()
{
echo "signal caught"
#do something
exit 0
}
trap sighdl SIGKILL SIGINT SIGTERM
Above code handle signal properly for following activity:
kill pid
pkill scriptname
For kill -9 pid
it does not call sighdl
. As per my understanding (if I am not wrong) kill -9
sends the SIGKILL signal.
Any idea?
Upvotes: 17
Views: 17000
Reputation: 1907
Actually, you can trap SIGKILL in SunOS (Solaris), but not in Linux (validated in Red Hat).
In Linux you can kill the foreign process softly with
kill -15 $PID
Upvotes: 1
Reputation: 784868
You cannot do that. Yes 9 is SIGKILL
and Unix system by design doesn't allow any script/program to trap SIGKILL
due to security reasons. Otherwise any script can trap & ignore SIGKILL which will make impossible to terminate that script by OS.
Upvotes: 29