我想了解一些用於描述bash中的信號處理的示例代碼。在示例32-7的http://tldp.org/LDP/abs/html/debugging.html中,作者的評論指出他正在捕獲SIGINT,但陷阱是針對EXIT的。在後臺進程中捕獲SIGINT
{ trap "exit" SIGUSR1 sleep $interval; sleep $interval while true; do ... done; } & # Start a progress bar as a background process. pid=$! trap "echo !; kill -USR1 $pid; wait $pid" EXIT # To handle ^C.
爲什麼EXIT的陷阱發送正確的信號(SIGUSR1)與化背景過程上的SIGINT(CTL-C)?
任何幫助表示讚賞解釋爲什麼這個工程。
不,只有當進程調用exit(2)本身(或者因爲它到達腳本的結尾或者明確的「退出」指令)。 – fge 2012-01-05 08:56:56
對,腳本應該有像'陷阱'出口127'2 15'來處理這個問題。 – tripleee 2012-01-05 12:06:04
啊。得到它了。經過進一步測試後,我看到在鍵盤中斷時,執行了INT陷阱,然後發生了EXIT陷阱。 – user1131035 2012-01-09 19:24:17