信号四要素
與變量三要素(類型、名字、值)類似的,每個(gè)信號(hào)也有其必備4要素,分別是:1.編號(hào);2.名稱(即編號(hào)的宏定義) ;3.事件(引起信號(hào)產(chǎn)生的事件,如段錯(cuò)誤);4.默認(rèn)處理動(dòng)作
可以通過(guò)man 7 signal 命令查看:
Signal???? Value???? Action?? Comment
──────────────────────────────────
?SIGALRM????? ?14?????? Term??? Timer signal from alarm(2)
SIGTERM????? ?15?????? Term??? Termination signal
SIGUSR1?? ??30,10,16??? Term??? User-defined signal 1
SIGUSR2?? ??31,12,17??? Term??? User-defined signal 2
名字??????? 編號(hào)????? 默認(rèn)處理方式???????? 事件
重點(diǎn)掌握的信號(hào):2、3、7(總線錯(cuò)誤)、8、9、10、11、12、13、14、15、17、19和20。要求記住前三個(gè)要素(編號(hào)、名字和事件)。
在標(biāo)準(zhǔn)信號(hào)中,有一些信號(hào)是有三個(gè)“Value”,第一個(gè)值通常對(duì)alpha和sparc架構(gòu)(CPU架構(gòu))有效,中間值針對(duì)x86、arm和其他架構(gòu),最后一個(gè)應(yīng)用于mips架構(gòu)。一個(gè)‘-’表示在對(duì)應(yīng)架構(gòu)上尚未定義該信號(hào)。
不同的操作系統(tǒng)定義了不同的系統(tǒng)信號(hào)。因此有些信號(hào)出現(xiàn)在Unix系統(tǒng)內(nèi),也出現(xiàn)在Linux中,而有的信號(hào)出現(xiàn)在FreeBSD或Mac OS中卻沒(méi)有出現(xiàn)在Linux下。這里我們只研究Linux系統(tǒng)中的信號(hào)(即只是取中間值)。
信號(hào)的默認(rèn)處理方式有五種(記住):Term:終止進(jìn)程;Ign:忽略信號(hào) (默認(rèn)即時(shí)對(duì)該種信號(hào)忽略操作); Core:終止進(jìn)程,生成Core文件(查驗(yàn)進(jìn)程死亡原因,用于gdb調(diào)試);Stop:停止(暫停)進(jìn)程;Cont:繼續(xù)運(yùn)行進(jìn)程。
這里特別強(qiáng)調(diào)9) SIGKILL 和19) SIGSTOP信號(hào),不允許忽略和捕捉,只能執(zhí)行默認(rèn)動(dòng)作。甚至不能將其設(shè)置為阻塞。
9) SIGKILL:無(wú)條件終止進(jìn)程。本信號(hào)不能被忽略,捕捉和阻塞。默認(rèn)動(dòng)作為終止進(jìn)程。它向系統(tǒng)管理員提供了可以殺死任何進(jìn)程的方法。
19) SIGSTOP:停止進(jìn)程的執(zhí)行。信號(hào)不能被忽略,捕捉和阻塞。默認(rèn)動(dòng)作為暫停進(jìn)程。
總結(jié)
- 上一篇: 英雄联盟手游绑定端游账号怎么解绑
- 下一篇: 信号的产生