什麼是訊號(Unix)

在 Linux 等系統中,作業系統或其他行程通知某個行程發生某件事的簡短通知。各有固定的編號與名稱:kill 預設的 SIGTERM(15號)是要求結束,SIGKILL(9號)是強制結束,SIGINT(2號)來自 Ctrl+C,SIGTSTP 是 Ctrl+Z 的暫停,SIGHUP(1號)則通知終端機已斷線。對許多訊號,行程可以準備收到時的處理程序(handler)或加以忽略,但 SIGKILL 與 SIGSTOP 既無法接收也無法忽略。shell 腳本以 trap 設定處理程序。

日文名稱: シグナル(Unix)

「訊號(Unix)」出現在1領域的1道練習題中(Linux與命令列基礎等)。

這個名詞所屬的領域: Linux與命令列基礎

練習訊號(Unix)的題目

停止沒有回應的行程時,一般建議先用「kill 行程ID」,仍未結束時才用「kill -9 行程ID」。理由是下列何者?

  1. A預設的 SIGTERM(15號)可由行程接收,做完善後處理再結束;SIGKILL(9號)則無法接收,不做善後處理就強制結束
  2. Bkill 預設送出的 SIGTERM(15號)會連同子行程全部結束,SIGKILL(9號)只結束指定的行程,所以影響較小
  3. CSIGKILL(9號)可由行程接收,做完善後處理再結束;kill 預設送出的 SIGTERM(15號)則無法忽略,會立即結束
查看答案與解析

正確答案:A. 預設的 SIGTERM(15號)可由行程接收,做完善後處理再結束;SIGKILL(9號)則無法接收,不做善後處理就強制結束

訊號是作業系統通知行程發生某件事的簡短通知,各有固定的編號與名稱。kill 不加選項時送出 SIGTERM(15號),程式可以準備接收它的處理程序(handler),在結束前儲存作業中的檔案或刪除暫存檔。SIGKILL(9號)行程既無法接收也無法忽略,由核心強制結束,因此寫到一半的檔案可能以損壞的狀態留下。要停止的行程的 ID 可以用 ps 或 top 查詢。

解析中的「訊號(Unix)」

出現「訊號(Unix)」的題目(1題)

  1. 停止沒有回應的行程時,一般建議先用「kill 行程ID」,仍未結束時才用「kill -9 行程ID」。理由是下列何者?

出現這個名詞的比較

相關名詞

正規表示式 符號連結 硬連結 超級使用者 管線(|) 輸入輸出重新導向 檔案權限 環境變數 cron Git

前往名詞解釋列表