Process Signals
View list of process signals
# MacOS
kill -l
# HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2
# Ubuntu
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) SIGRTMAXInteresting Signals
| Number | Symbol | Action | Meaning | Common Usage |
|---|---|---|---|---|
| 1 | SIGHUP | exit | Hangup | closing terminal session or Reload config |
| 2 | SIGINT | exit | Interrupt Process | Ctrl + C to stop process |
| 3 | SIGQUIT | core dump | Quit + dump info | Ctrl + \ |
| 8 | SIGFPE | core dump | Arithmetic Exception | Divide by zero, Invalid math |
| 9 | SIGKILL | exit | Force kill process; signal is never actually sent to the target program rather kernel terminates the process | kill -9 <pid>, cannot be caught, blocked, or ignored |
| 11 | SIGSEGV | core dump | Segmentation Fault | Invalid memory access |
| 13 | SIGPIPE | exit | Broken Pipe | Writing to a closed pipe |
| 14 | SIGALRM | exit | Timer expired | Timeouts |
| 15 | SIGTERM | exit | Graceful Termination | kill <pid> (default signal) |
| 18 | SIGCONT | continue | Continue if stopped | fg / bg commands; resumes a SIGSTOP/SIGTSTP process |
| 19 | SIGSTOP | stop | Pause process; keeps process in memory (resume with SIGCONT), unlike SIGKILL which terminates | Cannot be caught, blocked, or ignored (unlike SIGTSTP) |
| 20 | SIGTSTP | stop | Terminal Stop; polite pause request — process can catch it to clean up before suspending | Ctrl + Z; resumed by SIGCONT (process can also handle SIGCONT for reinit) |
Sending signals to process
killcommand can be used to send a signal to a process
man kill
# sending SIGKILL
# by number
kill -9 <pid>
# by short name
kill -KILL <pid>
# by full name
kill -SIGKILL <pid>killallcan be used to send signals to multiple processes
# kill all processes with name xlogo
killall xlogoTerminal Signals
- Terminal shortcuts can be used to send signals to process
- https://unix.stackexchange.com/questions/362559/list-of-terminal-generated-signals-eg-ctrl-c-sigint
Ctrl+C—>SIGINTCtrl+\—>SIGQUITCtrl+Z—>SIGTSTP- View terminal shortcuts to send various signals
# stty: set the options for a terminal device interface
# display all current settings
stty -a