Kill
為什麼在 Linux 中鍵入 Ctrl+c 兩次會停止正在執行的程序?
有一些 Linux 程序,例如 vlc,如果程序在第一個之後沒有停止,則建議鍵入兩次
ctrl
+以從終端終止它們的執行。c
當第一次不起作用時,為什麼鍵入
ctrl
+c
兩次會起作用?
它所做的完全是特定於應用程序的。當您按下
ctrl
+c
時,終端仿真器會向前台應用程序發送一個SIGINT信號,從而觸發相應的“信號處理程序”。SIGINT 的預設信號處理程序終止應用程序。但是任何程序都可以為 SIGINT 安裝自己的信號處理程序(包括根本不停止執行的信號處理程序)。顯然,vlc安裝了一個信號處理程序,該處理程序在第一次呼叫時嘗試進行一些清理/優雅終止,並在第二次呼叫時回退到立即終止執行的預設行為。