linux——signal信号
linux——signal信號(SIGHUP、SIGINT、SIGQUIT、SIGILL、SIGTRAP、SIGABRT...........................)_夜風的博客-CSDN博客_signal sigtrap
?
?????? ~~~~~~ ??????SIGHUP,hong up ,掛斷。本信號在用戶終端連接(正常或非正常)結束時發出, 通常是在終端的控制進程結束時, 通知同一session內的各個作業, 這時它們與控制終端不再關聯。
?????? ~~~~~~ ??????登錄Linux時,系統會分配給登錄用戶一個終端(Session)。在這個終端運行的所有程序,包括前臺進程組和 后臺進程組,一般都屬于這個 Session。當用戶退出Linux登錄時,前臺進程組和后臺有對終端輸出的進程將會收到SIGHUP信號。這個信號的默認操作為終止進程,因此前臺進 程組和后臺有終端輸出的進程就會中止。不過可以捕獲這個信號,比如wget能捕獲SIGHUP信號,并忽略它,這樣就算退出了Linux登錄,wget也 能繼續下載。
?????? ~~~~~~ ??????此外,對于與終端脫離關系的守護進程,這個信號用于通知它重新讀取配置文件。
SIGPIPE
?????? ~~~~~~ ??????管道破裂。這個信號通常在進程間通信產生,比如采用FIFO(管道)通信的兩個進程,讀管道沒打開 或者 意外終止就往管道寫,寫進程會收到SIGPIPE信號。 此外用Socket通信的兩個進程,寫進程在寫Socket的時候,讀進程已經終止。
SIGTERM
?????? ~~~~~~ ??????程序結束(terminate)信號, 與SIGKILL不同的是該信號可以被阻塞和處理。通常用來要求程序自己正常退出,shell命令kill缺省產生這個信號。如果進程終止不了,我們才會嘗試SIGKILL。
SIGCHLD
?????? ~~~~~~ ??????子進程(child)結束時, 父進程會收到這個信號。如果父進程沒有處理這個信號,也沒有等待(wait)子進程,子進程雖然終止,但是還會在內核進程表中占有表項,這 時的子進程稱為僵尸進程。 這種情 況我們應該避免(父進程或者忽略SIGCHILD信號,或者捕捉它,或者wait它派生的子進程,或者父進程先終止,這時子進程的終止自動由init進程 來接管)。
總結
以上是生活随笔為你收集整理的linux——signal信号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【软件工程大作业】软件项目管理之人员管理
- 下一篇: 网购时代,你以前错过店铺淘客?新的弥补机