萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Shell 腳本進階:trap 指令捕捉信號的三種模式詳解

trap 讓 Shell 腳本能捕捉並自訂回應系統信號(如 SIGINT, SIGTERM),是撰寫健壯腳本的關鍵。三種基本形式對應不同處理策略:

1. 執行自訂指令(最常用)

trap "commands" signal-list

收到列表中信號時執行雙引號內指令。典型用途:清理暫存檔、釋放鎖、記錄狀態、優雅關閉連線。

trap "rm -f /tmp/mylock; echo 'Script interrupted'; exit 1" INT TERM

2. 恢復預設行為

trap signal-list

不指定指令串,讓腳本對信號採用系統預設動作(通常是終止進程)。用於覆蓋先前設定的自訂處理。

3. 忽略信號

trap "" signal-list

指令串為空字串,腳本將忽略指定信號繼續執行。慎用,可能導致腳本無法被正常中斷。

常見信號速查

信號編號來源/含義預設動作
SIGHUP1終端機掛斷/控制進程終止終止
SIGINT2鍵盤中斷終止
SIGQUIT3鍵盤退出核心傾印並終止
SIGTERM15軟體終止請求終止

trap -l 可列出所有信號名稱與編號。

copyright © 萬盛學電腦網 all rights reserved