Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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?

like image 819
Jayesh Bhoi Avatar asked Apr 02 '14 09:04

Jayesh Bhoi


1 Answers

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.

like image 117
anubhava Avatar answered Nov 16 '22 03:11

anubhava