|
kcpmezzzbei64011277326.gif (60.41 KB, 下載次數(shù): 0)
下載附件
保存到相冊
kcpmezzzbei64011277326.gif
2024-8-31 11:41 上傳
# p' j0 ]: G8 L點擊上方藍色字體,關注我們
/ m' R- w! w8 c信號是一種軟件中斷,用于通知進程發(fā)生了某種異步事件。信號可以由用戶、其他進程或操作系統(tǒng)內核產(chǎn)生。進程可以選擇捕獲并處理這些信號,或者忽略它們,讓系統(tǒng)執(zhí)行默認操作。2 K; F0 p5 L( {( ^ W9 w! f+ O
0 X" U( N# S$ Y% M+ {) k
wjm2phrqoor64011277426.png (76.48 KB, 下載次數(shù): 0)
下載附件
保存到相冊
wjm2phrqoor64011277426.png
2024-8-31 11:41 上傳
$ u$ R+ E: C9 f% e
* F+ b, I8 ]; [+ }
不可靠信號(非實時信號):編號為 1~31 的信號。它們的行為可能因實現(xiàn)而異,特別是在信號被阻塞或忽略的情況下。如果多個相同的不可靠信號在短時間內連續(xù)到達,它們可能會合并成一個信號。可靠信號(實時信號):編號為 34~64 的信號。它們的行為在所有 POSIX 兼容的系統(tǒng)上都是相同的。可靠信號不會合并,即使它們在短時間內連續(xù)到達。可靠信號支持排隊,這意味著如果一個可靠信號被阻塞,它將被存儲在隊列中,直到信號處理程序準備就緒。
5 a/ X. B3 h+ n6 H& q1 @) }- P; f, w9 G
常見信號的用途和系統(tǒng)默認操作如下:1 E* D% n! ^- u8 S: H1 D" B
$ Y0 W# m3 s' Z2 Y) g
qpgunemfuhg64011277527.png (436.59 KB, 下載次數(shù): 0)
下載附件
保存到相冊
qpgunemfuhg64011277527.png
2024-8-31 11:41 上傳
) E( G: S0 G7 i1 C# {: k: e. h
, k4 U' G( _5 L6 D4 ~4 }/ oSIGINT (2)
9 B4 {# e0 p- \' ~, W0 [* a觸發(fā)方式:當用戶在終端按下中斷字符(通常是CTRL+C)。默認操作:終止進程。描述:用于中斷正在運行的前臺進程,是常用的終止命令。4 `& S6 z1 U0 e7 W- D/ h& s
+ U! Y3 b4 A- R2 a5 J4 n$ ^
$ A2 S8 j. T3 v8 z5 m, a4 k1 V. tSIGQUIT (3)+ B* F( S; i( u, S7 Q
觸發(fā)方式:當用戶在終端按下退出字符(通常是CTRL+\)。默認操作:終止進程并生成核心轉儲文件。描述:用于在程序進入無限循環(huán)或不響應時終止進程,并生成調試用的核心文件。$ I" n, q3 @* r# r% K7 e' p
. S* c w7 g9 Y% c; h( T( h3 N3 b$ o
: B7 T2 ^+ i( I- n7 n. N" ~9 w% |4 ?/ N- O
SIGILL (4)
# Z4 s" Q0 Z8 p/ }' {觸發(fā)方式:進程嘗試執(zhí)行非法的機器語言指令。默認操作:終止進程。描述:用于指示程序執(zhí)行了無效的操作碼,通常表示程序代碼損壞或內存越界。/ I: c* C4 W+ X
9 ]8 S* C9 h" {. R2 o* `- l" T3 _* Q8 \8 O# h
SIGABRT (6). J& W6 t' b% `/ C4 s+ u Q
觸發(fā)方式:當進程調用abort()系統(tǒng)調用。默認操作:終止進程并生成核心轉儲文件。描述:用于指示進程自身發(fā)現(xiàn)了嚴重錯誤,并請求自我終止。
; |1 K# D$ s l5 k3 v* p
* q" D3 Y; ^- ~$ H/ q/ a8 ]
: H8 J' D7 x L o# L( u% ]SIGBUS (7)
# a, W% C% k1 U/ {4 j5 A- u8 c觸發(fā)方式:發(fā)生總線錯誤(例如錯誤的內存訪問)。默認操作:終止進程。描述:指示內存訪問沖突,通常與硬件有關。
8 R3 t0 J# l9 K$ r. ~# O2 V% k# E
1 ^0 r) I9 r! ]- I4 r2 R4 K5 T" p! c% c; c* X2 z- Y d
SIGFPE (8)
( V2 h6 S$ Z% }' O" K8 L+ E3 U觸發(fā)方式:特定類型的算術錯誤(例如除以零)。默認操作:終止進程。描述:用于表示浮點運算錯誤或其他算術異常。
3 v- |) l' B0 \9 U2 T8 a. ~1 _' f! a1 j/ V8 K+ F) w1 F" E. b7 [
: X9 l; l6 B* q( f6 O$ \SIGKILL (9)
& U/ M$ k; h" g" q' M0 F) V, B觸發(fā)方式:通過kill -9命令或系統(tǒng)直接發(fā)送。默認操作:立即終止進程。描述:是無法被捕獲或忽略的“必殺”信號,用于強制終止進程。
6 J1 P2 L( M" `- G1 o3 n1 N
6 D% u! @2 z- o+ y' M- A3 O9 m+ x" f( I. h3 E/ z4 \* T
SIGUSR1 (10)4 i7 y7 u T+ U
觸發(fā)方式:用戶定義的信號,供程序員自定義使用。默認操作:終止進程。描述:用戶程序可以使用此信號進行進程間通信或事件通知。( G2 ^7 g( K0 H1 Y( P% g6 j& X4 T
' @. F' `( W3 n; [3 ]. S$ u" M* Z" h2 E' g# ^0 m+ P9 c& b- w7 m
SIGSEGV (11), |6 ]6 x/ g- b. a/ T+ L# \
觸發(fā)方式:進程嘗試訪問無效的內存地址。默認操作:終止進程。描述:常見于指針錯誤或無效內存訪問操作,通常會導致程序崩潰。
# _: x/ K- l o4 }: [
" v1 g9 u! h! e: B7 M1 b! ~! u" n D$ h
SIGUSR2 (12)
) ?' z. U* ?6 Q1 s" z觸發(fā)方式:與SIGUSR1類似,供用戶自定義使用。默認操作:終止進程。描述:供程序員自定義,用于進程間通信或自定義處理邏輯。) H Y8 g3 ^. f1 `& x# H
/ }$ @" T' ^' c1 u# X+ w; V
. p' x9 k, v9 y: V
SIGPIPE (13)7 G' e5 \6 F' u- w- f9 B) }5 d
觸發(fā)方式:進程向已關閉的管道或套接字寫入數(shù)據(jù)。默認操作:終止進程。描述:當嘗試向無效的通信通道寫入數(shù)據(jù)時觸發(fā),通常用于通知進程通信失敗。
& ?/ k# ]& v+ r7 e0 ?2 ^
& H8 h8 p6 p+ ?) ~/ G2 q; c5 ?9 a. \0 R" M: N) R! b) S4 r8 O8 D$ u
SIGALRM (14)
! Q/ b6 [" z! `2 g$ ?+ d觸發(fā)方式:定時器到期(由alarm()或setitimer()設置)。默認操作:終止進程。描述:常用于定時操作,信號觸發(fā)后通常終止程序或進行某種處理。
, {5 \9 Z5 Y( ~6 M$ y9 Y
3 l" t- p7 ?5 ?0 k& N+ B$ L3 f9 C" h, G8 w& T" a/ ^6 N& h$ i
SIGTERM (15)2 _, s( a+ B. Y
觸發(fā)方式:通過kill命令(不帶-9選項)。默認操作:終止進程。描述:用于請求進程正常終止,通常用于優(yōu)雅地關閉應用程序。
3 H5 {" H( Q2 p7 e
8 _+ I- D$ j! ]% U; G6 C
5 C& }! {4 d! BSIGCHLD (17)
: J! d% T3 |5 `觸發(fā)方式:子進程終止或狀態(tài)改變。默認操作:忽略信號。描述:父進程用來得知子進程終止或狀態(tài)改變,默認忽略,父進程可選擇處理。 p# B+ N6 U2 v8 q0 m( r
/ S+ c4 `6 @( m$ \) l7 j7 E5 D
( V ~1 A$ k0 ^4 Q& _9 {SIGCONT (18)2 S; m4 V, p4 W; V5 `: N- x
觸發(fā)方式:恢復已停止的進程。默認操作:繼續(xù)運行進程。描述:發(fā)送給已停止的進程,使其恢復執(zhí)行。
5 q. a6 d+ T5 z) f9 j- e+ k
1 U, F5 |6 d8 Y5 T3 ?& g0 r l& w T* A6 t& K, ?) P4 S7 v
SIGSTOP (19); ^$ _4 i& e9 o) }& R
觸發(fā)方式:強制停止進程。默認操作:停止進程。描述:無法捕獲或忽略的“必停”信號,用于暫停進程執(zhí)行。
/ k: g7 W4 `- T$ x& ]0 [. q: V. D ~
5 I5 _1 \6 C Q2 t3 i+ }+ o8 N; C
SIGTSTP (20)% e! Q6 ? v3 y. r, e J% m
觸發(fā)方式:用戶在終端按下停止字符(CTRL+Z)。默認操作:停止進程。描述:用于暫停前臺進程組中的進程,常用于暫停任務。/ I' P+ K8 l! a0 d
. R) O7 M- o+ d N+ z& f8 L0 ~5 ^/ n1 E8 _' s' m2 G" \
SIGXCPU (24)
6 j, R9 Q) y. J2 Z4 h, l: ~觸發(fā)方式:進程CPU時間超出限制。默認操作:終止進程。描述:通常用于檢測進程占用CPU過多時間,可能引發(fā)警告或終止進程。) L# c- [5 C' r( m2 S# I8 R
2 E( y" r% A) L E/ Q: l7 d A
6 p+ i% k, [. x( a' Z6 b3 bSIGVTALRM (26)
9 K* w7 p$ v# H1 @3 |) e! D1 ]# k觸發(fā)方式:虛擬定時器到期(由setitimer()設置)。默認操作:終止進程。描述:用于虛擬定時器管理,定時器到期后觸發(fā)信號。
) d+ Z( J# J. ]3 O6 C3 J( Y; K( r
, v# I; P! C# g' c3 jSIGWINCH (28)$ m: G& k" N7 [
觸發(fā)方式:終端窗口大小改變。默認操作:忽略信號。描述:當終端窗口調整大小時,前臺進程會接收到此信號。9 q& A4 I1 W' Z2 P$ t) T0 k& [
3 n) X9 D8 E2 F5 d8 T4 _: m
( r2 }3 E- j8 } t4 y4 S2 ?. C) |( GSIGPOLL/SIGIO (29)# A/ l! X( d$ ]$ j3 u# Y
觸發(fā)方式:異步I/O事件發(fā)生。默認操作:終止進程。描述:用于異步I/O操作,通知進程文件描述符的I/O事件。
% {6 \3 F1 Z5 _+ @
8 B4 G6 [; f Q: |SIGSYS (31)4 [9 L' `% e2 B# [0 c% {
觸發(fā)方式:進程發(fā)起了無效的系統(tǒng)調用。默認操作:終止進程。描述:通常用于捕獲非法系統(tǒng)調用或程序錯誤。8 O7 h; A5 w' Y9 t% A, @
9 E( q/ {6 n8 h" b! x: R) N1 \
這些信號為Linux進程提供了豐富的控制和通信機制。了解這些信號及其默認行為,有助于編寫更加健壯的程序,并能夠有效處理各種異常和中斷。
9 r" O5 R9 {' M
: L" |6 r8 Z0 o8 z
wwsqtqkezc164011277627.jpg (71.14 KB, 下載次數(shù): 0)
下載附件
保存到相冊
wwsqtqkezc164011277627.jpg
2024-8-31 11:41 上傳
# a: j+ i; V1 B! h4 t$ y: L
25ebf5rguzk64011277727.gif (45.46 KB, 下載次數(shù): 0)
下載附件
保存到相冊
25ebf5rguzk64011277727.gif
2024-8-31 11:41 上傳
& E! _! j2 }5 ?( {- G6 a* F點擊閱讀原文,更精彩~ |
|