1/19/22, 3:22 PM Unix / Linux - Signals and Traps
Signals are software interrupts sent to a program to indicate that an important event has occurred.
The events can vary from user requests to illegal memory access errors. Some signals, such as the
interrupt signal, indicate that a user has asked the program to do something that is not in the usual
flow of control.
The following table lists out common signals you might encounter and want to use in your programs −
Signal
Signal Name Description
Number
Hang up detected on controlling terminal or death of controlling
SIGHUP 1
process
SIGINT 2 Issued if the user sends an interrupt signal (Ctrl + C)
SIGQUIT 3 Issued if the user sends a quit signal (Ctrl + D)
SIGFPE 8 Issued if an illegal mathematical operation is attempted
If a process gets this signal it must quit immediately and will not
SIGKILL 9
perform any clean-up operations
SIGALRM 14 Alarm clock signal (used for timers)
SIGTERM 15 Software termination signal (sent by kill by default)
List of Signals
There is an easy way to list down all the signals supported by your system. Just issue the kill -
l command and it would display all the supported signals −
$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT
17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU
25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH
29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN
35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4
39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6
59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
https://www.tutorialspoint.com/unix/unix-signals-traps.htm 1/2
1/19/22, 3:22 PM Unix / Linux - Signals and Traps
The actual list of signals varies between Solaris, HP-UX, and Linux.
Default Actions
Every signal has a default action associated with it. The default action for a signal is the action that a
script or program performs when it receives a signal.
Some of the possible default actions are −
Terminate the process.
Ignore the signal.
Dump core. This creates a file called core containing the memory image of the process
when it received the signal.
Stop the process.
Continue a stopped process.
Sending Signals
There are several methods of delivering signals to a program or script. One of the most common is
for a user to type CONTROL-C or the INTERRUPT key while a script is executing.
When you press the Ctrl+C key, a SIGINT is sent to the script and as per defined default action script
terminates.
The other common method for delivering signals is to use the kill command, the syntax of which is
as follows −
$ kill -signal pid
Here signal is either the number or name of the signal to deliver and pid is the process ID that the
signal should be sent to. For Example −
$ kill -1 1001
The above command sends the HUP or hang-up signal to the program that is running with process
ID 1001. To send a kill signal to the same process, use the following command −
$ kill -9 1001
This kills the process running with process ID 1001.
https://www.tutorialspoint.com/unix/unix-signals-traps.htm 2/2