What exactly is the difference between
kill <pid> and
kill -s TERM <pid>.
Initially i thought the
$TERM variable holds a signal number but when I echo TERM its gives me
$echo $TERM xterm-256color
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.Sign up to join this community
There is no difference. From
The default signal for kill is TERM.
kill -s TERM <pid>
does not expand the variable
kill -s $TERM <pid> would. It uses the string
The correspondence between signal numbers and names are in
man 7 signal. Also, from the POSIX specification of
kill (my italics),
Specify the signal to send, using one of the symbolic names defined in the <signal.h> header. Values of signal_name shall be recognized in a case-independent fashion, without the SIG prefix. In addition, the symbolic name 0 shall be recognized, representing the signal value zero. The corresponding signal shall be sent instead of SIGTERM.
kill from GNU coreutils (version 8.32 that I have installed) has a
-L option that outputs this information:
1 HUP Hangup: 1 2 INT Interrupt: 2 3 QUIT Quit: 3 4 ILL Illegal instruction: 4 5 TRAP Trace/BPT trap: 5 6 ABRT Abort trap: 6 7 EMT EMT trap: 7 8 FPE Floating point exception: 8 9 KILL Killed: 9 10 BUS Bus error: 10 11 SEGV Segmentation fault: 11 12 SYS Bad system call: 12 13 PIPE Broken pipe: 13 14 ALRM Alarm clock: 14 15 TERM Terminated: 15 16 URG Urgent I/O condition: 16 17 STOP Suspended (signal): 17 18 TSTP Suspended: 18 19 CONT Continued: 19 20 CHLD Child exited: 20 21 TTIN Stopped (tty input): 21 22 TTOU Stopped (tty output): 22 23 IO I/O possible: 23 24 XCPU Cputime limit exceeded: 24 25 XFSZ Filesize limit exceeded: 25 26 VTALRM Virtual timer expired: 26 27 PROF Profiling timer expired: 27 28 WINCH Window size changes: 28 29 INFO Information request: 29 30 USR1 User defined signal 1: 30 31 USR2 User defined signal 2: 31