
我在一本 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
列出可用的訊號名稱和對應的編號。
最多訊號具有基於預定義的意義誰在什麼時候發送它們以及流程應該如何以及如何對它們做出反應。