linux: Terminating Processes
- You must know signal and their values while writing the shell scripts.
- You cannot use (trap) all available signals.
- Some signals can never be caught. For example, the signals SIGKILL (9) and SIGSTOP (19) cannot be caught, blocked, or ignored.
- The following table is a list of the commonly used signal numbers, description and whether they can be trapped or not:
Number | Constant | Description | Default action | Trappable (Yes/No) |
---|---|---|---|---|
0 | 0 | Success | Terminate the process. | Yes |
1 | SIGHUP | Hangup detected on controlling terminal or death of controlling process. Also, used to reload configuration files for many UNIX /Linux daemons. | Terminate the process. | Yes |
2 | SIGINT | Interrupt from keyboard (Ctrl+C) | Terminate the process. | Yes |
3 | SIGQUIT | Quit from keyboard (Ctrl-\. or, Ctrl-4 or, on the virtual console, the SysRq key) | Terminate the process and dump core. | Yes |
4 | SIGILL | Terminate the process and dump core. | Illegal instruction. | Yes |
6 | SIGABRT | Abort signal from abort(3) – software generated. | Terminate the process and dump core. | Yes |
8 | SIGFPE | Floating point exception. | Terminate the process and dump core. | Yes |
9 | SIGKILL | Kill signal | Terminate the process. | No |
15 | SIGTERM | Termination signal | Terminate the process. | Yes |
20 | SIGSTP | Stop typed at tty (CTRL+z) | Stop the process. | Yes |
To view list of all signals, enter:
kill -l
To view numeric number for given signal called SIGTSTP, enter:
kill -l SIGTSTP
You can also view list of signal by visiting /usr/include/linux/signal.h file:
more /usr/include/linux/signal.h