我在一本 Linux shell 脚本编写的书中看到了这个命令
$ kill -HUP 1234 >killout.txt 2>killerr.txt
我知道该命令的作用,但我无法理解这些标志-HUP
答案1
Linux下试试man 7 signal
。
kill -HUP 1234
意思是“发送 SIGHUP 信号 (1) 到进程 1234”,所以它相当于kill -1 1234
. Kill 发送的默认信号是 SIGTERM (15),因此kill 1234
相当于kill -TERM 1234
或kill -15 1234
。
答案2
-HUP
不是常见的单字母选项语法中的三个标志H
, U
。P
由于历史原因,该kill
命令采用可选的信号名称或信号编号,前面带有破折号 ( -
)。
kill -1 1234
kill -HUP 1234
(与 相反kill 1 1234
,它将向进程 1 和 1234 发送默认信号 (SIGTERM)。)
你的手册页可能列出了这样的内容:
kill [ -signal | -s signal ] pid ...
这-signal
意味着您可以使用破折号后跟信号名称(可以是名称或数字)。或者,您可以使用-s
后跟信号名称的选项;这是两种不同的语法,但含义相同。
kill -l
列出可用的信号名称和相应的编号。
最多信号具有基于预定义的含义谁在什么时候发送它们以及流程应该如何以及如何对它们做出反应。