Siyal - Linux / UNIX lòd

Linux sipòte tou de POSIX siyal serye (ki se "siyal estanda") ak POSIX siyal an tan reyèl.

Siyal Creole

Linux sipòte siyal yo estanda ki nan lis anba a. Nimewo siyal plizyè se achitekti depandan, jan sa endike nan kolòn "Valè" la. (Ki kote twa valè yo bay, youn nan premye se nòmalman valid pou Alpha ak sparc, youn nan mitan pou i386, ppc ak sh, ak yon sèl ki sot pase a pou mips.

A - vle di ke yon siyal absan sou achitekti ki koresponn lan.)

Antre nan kolòn nan "Aksyon" nan tablo a presize aksyon an default pou siyal la, jan sa a:

Tèm

Aksyon Default se mete fen nan pwosesis la.

Ign

Aksyon Default se inyore siyal la.

Nwayo

Aksyon Default se mete fen nan pwosesis la ak debri nwayo.

Sispann

Aksyon Default se yo sispann pwosesis la.

Premye siyal yo ki dekri nan estanda POSIX.1 orijinal la.

Siyal Valè Aksyon Kòmantè
oswa lanmò nan pwosesis kontwole
SIGINT 2 Tèm Entèwonp soti nan klavye
Sikwi 3 Nwayo Kite soti nan klavye
SIGILL 4 Nwayo Enstriksyon ilegal
SIGABRT 6 Nwayo Abort siyal soti nan abòde (3)
SIGFPE 8 Nwayo Flotan eksepsyon pwen
SIGKILL 9 Tèm Touye siyal
SIGSEGV 11 Nwayo Invalid referans memwa
SIGPIPE 13 Tèm Broken tiyo: ekri tiyo ki pa gen okenn lektè
SIGALRM 14 Tèm Timer siyal soti nan alam (2)
SIGTERM 15 Tèm Siyati a
SIGUSR1 30,10,16 Tèm Itilizatè defini siyal 1
SIGUSR2 31,12,17 Tèm Itilizatè defini siyal 2
SIGCHLD 20,17,18 Ign Timoun sispann oswa sispann
SIGCONT 19,18,25 Kontinye si sispann
SIGSTOP 17,19,23 Sispann Sispann pwosesis
SIGTSTP 18,20,24 Sispann One Stop tape nan tty
SIGTTIN 21,21,26 Sispann tty opinyon pou pwosesis background
SIGTTOU 22,22,27 Sispann tty pwodiksyon pou pwosesis background

SIGKILL ak SIGSTOP siyal yo pa ka kenbe, bloke, oswa inyore.

Next siyal yo pa nan estanda POSIX.1 men ki dekri nan SUSv2 ak SUSv3 / POSIX 1003.1-2001.

Siyal Valè Aksyon Kòmantè
SIGPOLL Tèm Evolisyon evènman (Sys V). Sinonim nan SIGIO
SIGPROF 27,27,29 Tèm Pwofil revèy ekspire
SIGSYS 12, -, 12 Nwayo Move agiman woutin (SVID)
SIGTRAP 5 Nwayo Trace / breakpoint pèlen
SIGURG 16,23,21 Ign Kondisyon ijan sou priz (4.2 BSD)
SIGVTALRM 26,26,28 Tèm Revèy alam Virtual (4.2 BSD)
SIGXCPU 24,24,30 Nwayo Limit tan CPU depase (4.2 BSD)
SIGXFSZ 25,25,31 Nwayo Limit gwosè File depase (4.2 BSD)

Jiska Linux ak 2.2, konpòtman an default pou SIGSYS , SIGXCPU , SIGXFSZ , ak (sou achitekti lòt pase SPARC ak MIPS) SIGBUS te mete fen nan pwosesis la (san yo pa yon debri debaz). (Sou kèk lòt UNIS aksyon an defo pou SIGXCPU ak SIGXFSZ se mete fen nan pwosesis la san yo pa yon pil fatra debaz.) Linux 2.4 konfòme ak egzijans yo POSIX 1003.1-2001 pou siyal sa yo, mete fen nan pwosesis la ak yon pil fatra nwayo.

Next divès lòt siyal.

Siyal Valè Aksyon Kòmantè
SIGEMT 7, -, 7 Tèm
SIGSTKFLT -, 16, - Tèm Pile fòt sou coprosesè (rès)
SIGIO 23,29,22 Tèm Mwen / O kounye a posib (4.2 BSD)
SIGCLD -, -, 18 Ign Yon synonym pou SIGCHLD
SIGPWR 29,30,19 Tèm Pouvwa echèk (System V)
SIGINFO 29, -, - Yon synonym pou SIGPWR
SIGLOST -, -, - Tèm File fèmen pèdi
SIGWINCH 28,28,20 Ign Fenèt ranje siyal (4.3 BSD, Solèy)
SIGUNUSED -, 31, - Tèm Siyal itilize (yo pral SIGSYS)

(Siyal 29 se SIGINFO / SIGPWR sou yon alfa, men SIGLOST sou yon sparc.)

SIGEMT pa espesifye nan POSIX 1003.1-2001, men neverthless parèt sou pifò lòt UNICE, kote aksyon default li yo se tipikman fen pwosesis la ak yon pil fatra debaz.

SIGPWR (ki pa espesifye nan POSIX 1003.1-2001) se tipikman inyore pa default sou sa yo UNis lòt kote li parèt.

SIGIO (ki pa espesifye nan POSIX 1003.1-2001) se inyore pa default sou plizyè UNIS.

Siyal tan reyèl

Linux sipòte siyal an tan reyèl kòm orijinèlman defini nan ekstansyon yo POSIX.4 an tan reyèl (e kounye a, enkli nan POSIX 1003.1-2001). Linux sipòte 32 an tan reyèl siyal, konte depi 32 ( SIGRTMIN ) nan 63 ( SIGRTMAX ). (Pwogram yo ta dwe toujou al gade nan siyal an tan reyèl lè l sèvi avèk notifikasyon SIGRTMIN + n, depi seri a nan tan reyèl siyal varye atravè Inis.)

Kontrèman ak siyal estanda, siyal an tan reyèl pa gen okenn siyifikasyon predefini: seri a tout antye nan an tan reyèl siyal yo ka itilize pou rezon ki defini aplikasyon. (Remak, sepandan, aplikasyon LinuxThreads la itilize premye twa an siyal an tan reyèl.)

Aksyon defo pou yon siyal an tan reyèlman se mete fen nan pwosesis la k ap resevwa.

Siyal tan reyèl yo distenge pa bagay sa yo:

  1. Kèk miltip nan an tan reyèl siyal ka chaje. Kontrèman, si plizyè ka nan yon siyal estanda yo delivre pandan ke se siyal kounye a bloke, Lè sa a, se sèlman yon sèl egzanp koudeta.
  2. Si siyal la voye lè l sèvi avèk sigque (2), yon valè akonpaye (swa yon nonb antye oswa yon konsèy) ka voye ak siyal la. Si pwosesis k ap resevwa a etabli yon machann pou siyal sa a lè l sèvi avèk drapo SA_SIGACTION nan sigaction (2) lè sa a li ka jwenn done sa a via jaden si_value nan siginfo_t estrikti a te pase kòm dezyèm agiman a moun kap okipe a. Anplis de sa, si_pid ak si_uid jaden nan estrikti sa a ka itilize yo jwenn ID nan itilizatè PID ak reyèl nan pwosesis la voye siyal la.
  3. Siyal tan reyèl yo delivre nan yon lòd garanti. Plizyè siyal an tan reyèl nan menm kalite a yo delivre nan lòd yo te voye yo. Si diferan siyal an tan reyèl voye nan yon pwosesis, yo delivre kòmanse ak siyal ki pi ba a. (Wi, siyal ki ba-nimero gen pi gwo priyorite.)

Si tou de estanda ak an tan reyèl siyal yo annatant pou yon pwosesis, POSIX kite li espesifye ki se delivre an premye. Linux, tankou anpil lòt enplemantasyon, bay priyorite siyal estanda nan ka sa a.

Dapre POSIX, yon aplikasyon dwe pèmèt omwen _POSIX_SIGQUEUE_MAX (32) siyal an tan reyèl yo dwe chaje nan yon pwosesis. Sepandan, olye ke mete yon limit pou chak-pwosesis, Linux enpoze yon limit tout sistem sou kantite ki te siyal an tan reyèl nan tout pwosesis.

Limit sa a ka wè (ak privilèj) chanje via / proc / sys / kernel / rtsig-max dosye. Yon dosye ki gen rapò, / proc / sys / kernel / rtsig-max , yo ka itilize yo konnen ki jan anpil siyal an tan reyèl yo kounye a chaje.

KONFÒMASYON POU

POSIX.1

Enpòtan: Sèvi ak kòmandman an moun ( moun ) yo wè ki jan yon lòd yo itilize sou òdinatè patikilye ou.