kill <pid> 和 kill -s TERM <pid> 之间的区别

moh*_*eem 0 linux shell kill signals

kill <pid>和之间究竟有什么区别kill -s TERM <pid>。最初我认为该$TERM变量包含一个信号编号,但是当我回显 TERM 时,它给了我

$echo $TERM
xterm-256color
Run Code Online (Sandbox Code Playgroud)

Qua*_*odo 7

没有区别。来自man kill

kill 的默认信号是 TERM。

kill -s TERM <pid>
Run Code Online (Sandbox Code Playgroud)

展开变量TERM,如kill -s $TERM <pid>会。它使用字符串TERM

信号编号和名称的对应关系在man 7 signal. 此外,从(我的斜体)的POSIX 规范kill

-s signal_name
使用 <signal.h> 标头中定义的符号名称之一指定要发送的信号。signal_name 的值应以独立于大小写的方式识别,没有 SIG 前缀。此外,符号名称 0 应被识别,代表信号值零。应发送相应的信号而不是 SIGTERM。