|
xf4fucpuviv6403894256.gif (60.41 KB, 下載次數(shù): 4)
下載附件
保存到相冊
xf4fucpuviv6403894256.gif
2024-9-4 09:45 上傳
9 g0 n }, T' y點擊上方藍色字體,關(guān)注我們1 X1 i' C2 C7 P& s
信號是一種軟件中斷,用于通知進程發(fā)生了某種異步事件。信號可以由用戶、其他進程或操作系統(tǒng)內(nèi)核產(chǎn)生。進程可以選擇捕獲并處理這些信號,或者忽略它們,讓系統(tǒng)執(zhí)行默認操作。0 D2 i4 i! _* L: f, ^
2 y6 B% _7 I# f- o3 e
zgxxwxna3hd6403894356.png (76.48 KB, 下載次數(shù): 4)
下載附件
保存到相冊
zgxxwxna3hd6403894356.png
2024-9-4 09:45 上傳
S1 k2 y1 \3 u" |
; G# z) p: S' W4 |9 R, T) P
不可靠信號(非實時信號):編號為 1~31 的信號。它們的行為可能因?qū)崿F(xiàn)而異,特別是在信號被阻塞或忽略的情況下。如果多個相同的不可靠信號在短時間內(nèi)連續(xù)到達,它們可能會合并成一個信號。可靠信號(實時信號):編號為 34~64 的信號。它們的行為在所有 POSIX 兼容的系統(tǒng)上都是相同的?煽啃盘柌粫喜ⅲ词顾鼈冊诙虝r間內(nèi)連續(xù)到達?煽啃盘栔С峙抨,這意味著如果一個可靠信號被阻塞,它將被存儲在隊列中,直到信號處理程序準(zhǔn)備就緒。
( }# y" N9 y7 R6 h3 G2 q6 G& \: K+ `* I- r8 v' w6 I9 ]
常見信號的用途和系統(tǒng)默認操作如下:
. o5 P( y$ G- l% c7 P
% \ E' G3 {4 @* ]' M4 t# ^
1yrdwk1ux4k6403894456.png (436.59 KB, 下載次數(shù): 3)
下載附件
保存到相冊
1yrdwk1ux4k6403894456.png
2024-9-4 09:45 上傳
0 B5 m/ c9 b. M9 p
9 N# U& ^6 y0 g7 E7 s- N. @SIGINT (2)' `. U' |, ?" O6 S E
觸發(fā)方式:當(dāng)用戶在終端按下中斷字符(通常是CTRL+C)。默認操作:終止進程。描述:用于中斷正在運行的前臺進程,是常用的終止命令。. Z- P! c) M: x/ ?$ P
* i/ i, b% J4 R" d3 l2 w; b
/ C9 [& j( o6 g( b
SIGQUIT (3)
) o2 j/ [# K. E/ U觸發(fā)方式:當(dāng)用戶在終端按下退出字符(通常是CTRL+\)。默認操作:終止進程并生成核心轉(zhuǎn)儲文件。描述:用于在程序進入無限循環(huán)或不響應(yīng)時終止進程,并生成調(diào)試用的核心文件。$ e5 i5 [# p7 V, r/ G
6 U) g% x9 @6 z. Q# |4 w b& G( H4 b/ q5 p5 b7 A- n* F
SIGILL (4)
" N4 ]* {" a- ?: U& b% r觸發(fā)方式:進程嘗試執(zhí)行非法的機器語言指令。默認操作:終止進程。描述:用于指示程序執(zhí)行了無效的操作碼,通常表示程序代碼損壞或內(nèi)存越界。
. P, F, J$ e* X* n& ]/ h: v& I$ m) k) o& j& T
^8 a' B) q1 f; l) J
SIGABRT (6)
# ?0 ~/ S5 \% k觸發(fā)方式:當(dāng)進程調(diào)用abort()系統(tǒng)調(diào)用。默認操作:終止進程并生成核心轉(zhuǎn)儲文件。描述:用于指示進程自身發(fā)現(xiàn)了嚴重錯誤,并請求自我終止。4 J# i( N' J6 e# f8 M$ z) J
8 W6 o* O# z' ^& N
4 N9 x- \3 \' B ^SIGBUS (7)- X% d* ]1 ~, Q1 ~) L; {0 x; ^0 X
觸發(fā)方式:發(fā)生總線錯誤(例如錯誤的內(nèi)存訪問)。默認操作:終止進程。描述:指示內(nèi)存訪問沖突,通常與硬件有關(guān)。0 x k R5 W& O) x
: }+ p# [) Q" O3 j7 E
, A$ e( a4 t: l a% {0 kSIGFPE (8) W2 Q" m% C9 Y5 g e O
觸發(fā)方式:特定類型的算術(shù)錯誤(例如除以零)。默認操作:終止進程。描述:用于表示浮點運算錯誤或其他算術(shù)異常。# b! t/ y* w8 { E8 g7 R! h
) h7 v- E0 V" h$ u& O+ \9 C
# H9 _$ ^6 [. Z# m3 w3 F5 B
SIGKILL (9)' q+ I$ @5 r9 `0 }* ]( Y7 K
觸發(fā)方式:通過kill -9命令或系統(tǒng)直接發(fā)送。默認操作:立即終止進程。描述:是無法被捕獲或忽略的“必殺”信號,用于強制終止進程。( Z" c+ |- I0 m; C; w; [, p1 w
* }# b# Z7 Q: P1 e; R" Q& p: K! D3 `: O; I; A
SIGUSR1 (10)4 n s/ Q" M* g P) z4 k; {
觸發(fā)方式:用戶定義的信號,供程序員自定義使用。默認操作:終止進程。描述:用戶程序可以使用此信號進行進程間通信或事件通知。% X( r. \* y4 l
- c' E- e3 G8 p( t
! Z3 k" [0 ^0 N7 Q' F: R4 e+ i0 |
SIGSEGV (11)
0 F! j& {7 u- N# G6 {- O觸發(fā)方式:進程嘗試訪問無效的內(nèi)存地址。默認操作:終止進程。描述:常見于指針錯誤或無效內(nèi)存訪問操作,通常會導(dǎo)致程序崩潰。, j, D8 r( ^0 q+ v
- q- j! Y! P' ]% [+ p' b' k8 d0 K
P9 X; S. S' j+ v7 y0 N# }" d2 C# D
SIGUSR2 (12)# z+ B) \, S# P
觸發(fā)方式:與SIGUSR1類似,供用戶自定義使用。默認操作:終止進程。描述:供程序員自定義,用于進程間通信或自定義處理邏輯。
# P1 [7 u' _) b! H$ ^+ G0 J; g, M8 w/ L% ?/ F- ?
5 U( X# C' Y x" W$ Z5 p' jSIGPIPE (13)
3 g3 _! E# F4 J2 \6 x% j觸發(fā)方式:進程向已關(guān)閉的管道或套接字寫入數(shù)據(jù)。默認操作:終止進程。描述:當(dāng)嘗試向無效的通信通道寫入數(shù)據(jù)時觸發(fā),通常用于通知進程通信失敗。
- {' `8 E2 n2 ~( t% b/ }
* Z! A. K% p7 V! O4 _- N- u
* w0 ~- f" a Y5 F6 Z: L, NSIGALRM (14)
% f1 P: |) T" ]觸發(fā)方式:定時器到期(由alarm()或setitimer()設(shè)置)。默認操作:終止進程。描述:常用于定時操作,信號觸發(fā)后通常終止程序或進行某種處理。8 \3 f# ], T; ^% ~2 H \
8 v" k) I( a) |( N4 X6 P9 _5 I' Z; P6 e9 q, `" W2 x2 f; r
SIGTERM (15)
2 G7 K/ b! l! C* Q觸發(fā)方式:通過kill命令(不帶-9選項)。默認操作:終止進程。描述:用于請求進程正常終止,通常用于優(yōu)雅地關(guān)閉應(yīng)用程序。
/ M1 g8 q3 |! p4 h" g8 O( A4 R" K( w
$ K9 D0 M. R" D
SIGCHLD (17) q) u1 O! q6 u5 C' Y N" Z
觸發(fā)方式:子進程終止或狀態(tài)改變。默認操作:忽略信號。描述:父進程用來得知子進程終止或狀態(tài)改變,默認忽略,父進程可選擇處理。5 U1 C* d. ?0 M' e3 ?3 Q8 N( N
/ R9 B8 t1 e& M- W) |
! Y0 g& l( q! Y7 U0 cSIGCONT (18)4 e& T4 l" G& p) T- `
觸發(fā)方式:恢復(fù)已停止的進程。默認操作:繼續(xù)運行進程。描述:發(fā)送給已停止的進程,使其恢復(fù)執(zhí)行。
' G2 Q% R2 @, R0 C' q z8 R8 }- C& v! U* E
9 M. u/ h- c( `+ E, FSIGSTOP (19)/ r; l& W6 A. t/ w! w
觸發(fā)方式:強制停止進程。默認操作:停止進程。描述:無法捕獲或忽略的“必!毙盘,用于暫停進程執(zhí)行。, t% F: }7 P9 y0 `# x: Y
- y4 P1 q0 l# u$ P
! l* }& G$ Z3 Y% p, `SIGTSTP (20)
8 Z9 R. d. D: M5 A: Q觸發(fā)方式:用戶在終端按下停止字符(CTRL+Z)。默認操作:停止進程。描述:用于暫停前臺進程組中的進程,常用于暫停任務(wù)。* u0 Y3 L9 q5 e) X. ~% ]9 g
6 W% n# k ~. {+ q" X
* v: v- ], |( v$ C5 `) S" vSIGXCPU (24)
: `7 u2 o2 B1 l0 ?$ [, |觸發(fā)方式:進程CPU時間超出限制。默認操作:終止進程。描述:通常用于檢測進程占用CPU過多時間,可能引發(fā)警告或終止進程。
5 H/ H$ R- y$ K7 u/ L; C* k/ B5 [2 }& m$ W
/ Z7 U: `1 b1 d
SIGVTALRM (26)
2 ~: U7 D m# Q$ R觸發(fā)方式:虛擬定時器到期(由setitimer()設(shè)置)。默認操作:終止進程。描述:用于虛擬定時器管理,定時器到期后觸發(fā)信號。3 F3 p3 ?2 t8 Y, {
3 ]$ Q( S8 M9 o1 X2 v6 U1 e. h
SIGWINCH (28)
1 H! r$ [! j+ L' w" z觸發(fā)方式:終端窗口大小改變。默認操作:忽略信號。描述:當(dāng)終端窗口調(diào)整大小時,前臺進程會接收到此信號。7 T( q' a& w/ r- o5 P
0 D/ R) o: _+ A7 {" o& S- [) T2 S4 e5 R, ~0 d
SIGPOLL/SIGIO (29)
8 }3 q/ k W8 x8 F+ u4 s% p觸發(fā)方式:異步I/O事件發(fā)生。默認操作:終止進程。描述:用于異步I/O操作,通知進程文件描述符的I/O事件。
1 F3 T0 c2 d8 a! G. c$ y' K# X. R" z1 m( r5 w% O; Q( ?
SIGSYS (31)# H- d7 _4 ]( J# E5 N
觸發(fā)方式:進程發(fā)起了無效的系統(tǒng)調(diào)用。默認操作:終止進程。描述:通常用于捕獲非法系統(tǒng)調(diào)用或程序錯誤。4 x8 C# W: [; Q$ f( n+ E0 i2 r
0 W+ |0 @( b7 V' s4 J這些信號為Linux進程提供了豐富的控制和通信機制。了解這些信號及其默認行為,有助于編寫更加健壯的程序,并能夠有效處理各種異常和中斷。0 |9 }( V/ t' v5 o! S! b
7 x* J9 s# o' B3 n4 u
dobdp1g01mo6403894556.jpg (71.14 KB, 下載次數(shù): 3)
下載附件
保存到相冊
dobdp1g01mo6403894556.jpg
2024-9-4 09:45 上傳
R( v f* g9 y# D) t/ N
yrkuokddsgw6403894656.gif (45.46 KB, 下載次數(shù): 4)
下載附件
保存到相冊
yrkuokddsgw6403894656.gif
2024-9-4 09:45 上傳
t# o5 P- m& {3 B
點擊閱讀原文,更精彩~ |
|