Why I am not getting signal SIGKILL on kill -9 command in bash?

Issue

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:

  1. Ctrl+C
  2. kill pid
  3. 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?

Solution

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.

Answered By – anubhava

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published