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) SIGRTMAX

Interesting Signals

NumberSymbolActionMeaningCommon Usage
1SIGHUPexitHangupclosing terminal session or Reload config
2SIGINTexitInterrupt ProcessCtrl + C to stop process
3SIGQUITcore dumpQuit + dump infoCtrl + \
8SIGFPEcore dumpArithmetic ExceptionDivide by zero, Invalid math
9SIGKILLexitForce 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
11SIGSEGVcore dumpSegmentation FaultInvalid memory access
13SIGPIPEexitBroken PipeWriting to a closed pipe
14SIGALRMexitTimer expiredTimeouts
15SIGTERMexitGraceful Terminationkill <pid> (default signal)
18SIGCONTcontinueContinue if stoppedfg / bg commands; resumes a SIGSTOP/SIGTSTP process
19SIGSTOPstopPause process; keeps process in memory (resume with SIGCONT), unlike SIGKILL which terminatesCannot be caught, blocked, or ignored (unlike SIGTSTP)
20SIGTSTPstopTerminal Stop; polite pause request — process can catch it to clean up before suspendingCtrl + Z; resumed by SIGCONT (process can also handle SIGCONT for reinit)

Sending signals to process

  • kill command 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>
  • killall can be used to send signals to multiple processes
# kill all processes with name xlogo
killall xlogo

Terminal Signals

# stty: set the options for a terminal device interface
# display all current settings
stty -a

When you cannot kill a process