Linux ënnerstëtzt den POSIX zuverlässigen Signalen (nachher "Standard Signale") an POSIX-Echtzäit Signaler.
Standard Signaler
Linux ënnerstëtzt déi normale Signaler déi hei opgeluecht sinn. Verschidde Signallummeren sinn d'Architektur ofhängeg, wéi et an der Spektiv "Wäert" uginn. (Wou dräi Wäerter gi gegeben, déi éischt ass normalerweis gëlteg fir Alpha a Spär, déi Mëttel fir i386, ppc a sh, an déi lescht fir Mips.
A - steet, datt e Signal op déi entspriechend Architektur fehlt.)
D'Einträgungen an der Spalt "Action" vun der Tabelle spezifizéieren d'Standardaktioun fir de Signal wéi folgend:
Term
Standardaktioun ass de Prozess ze korrigéieren.
Ign
Standardaktioun ass den Signal ignoréieren.
Core
Standardaktioun ass den Prozess an de Kärkask ze kündelen.
Stop
Standardaktioun ass de Prozess ze stoppen.
Fir d'éischt sinn d'Signaler am urspréngleche POSIX.1 Standard beschriwwe ginn.
Signal | Wäert | Action | Kommentéieren |
oder Doud vum Kontrollsteier | |||
SIGINT | 2 | Term | Ënnerbrieche vun der Tastatur |
SIGQUIT | 3 | Core | Huelt vun der Tastatur |
SIGILL | 4 | Core | Illegal Instruction |
SIGABRT | 6 | Core | Abort Signal vun Abbruch (3) |
SIGFPE | 8 | Core | Ausnahmeblatt |
SIGKILL | 9 | Term | Kill Signal |
SIGSEGV | 11 | Core | Invalid Erënnerung |
SIGPIPE | 13 | Term | Broken Pipe: Schreift a Pipe mat keng Lieser |
SIGALRM | 14 | Term | Timer-Signal vun Alarm (2) |
SIGTERM | 15 | Term | Termin Signal |
SIGUSR1 | 30,10,16 | Term | Benotzerdefinéiert Signal 1 |
SIGUSR2 | 31,12,17 | Term | Benotzerdefinéiert Signal 2 |
SIGCHLD | 20,17,18 | Ign | Kand huet opgehalen oder ofgeschloss |
SIGCONT | 19,18,25 | Bleif awer weiderhëllefen | |
SIGSTOP | 17,19,23 | Stop | Stop Prozess |
SIGTSTP | 18,20,24 | Stop | Stop op tty gezeechnet |
SIGTTIN | 21,21,26 | Stop | D'Input fir Backgroundplaz |
SIGTTOU | 22,22,27 | Stop | Ausgabe vum Ausgang fir de Backgroundprozess |
D'Signaler SIGKILL a SIGSTOP kënnen net festgestallt ginn, blockéiert oder ignoréiert ginn.
D'Signaler net am POSIX.1-Standard, awer am SUSv2 a SUSv3 / POSIX 1003.1-2001 beschriwwen.
Signal | Wäert | Action | Kommentéieren |
SIGPOLL | Term | Pollable Event (Sys V). Synonym vu SIGIO | |
SIGPROF | 27,27,29 | Term | Profiler Timer ofgelaaf |
SIGSYS | 12, -, 12 | Core | Schlecht Argument fir Routine (SVID) |
SIGTRAP | 5 | Core | Trace / Breakpoint Trap |
SIGURG | 16,23,21 | Ign | Urgent Conditioun am Socket (4.2 BSD) |
SIGVTALRM | 26,26,28 | Term | Virtuell Wecker (4.2 BSD) |
SIGXCPU | 24,24,30 | Core | CPU-Zäitlimit iwwerschratt ass (4,2 BSD) |
SIGXFSZ | 25,25,31 | Core | Dateigröße Limit iwwerschratt (4.2 BSD) |
Bis zu a souguer Linux 2.2, de Standardverhalen fir SIGSYS , SIGXCPU , SIGXFSZ , an (op Architekturen ausser SPARC a MIPS) SIGBUS war de Prozess ze kündelen (ouni Core Dump). (Op e puer aner Uniseen ass d'Standardaktioun fir SIGXCPU a SIGXFSZ de Prozess ouni Core Dump ze kündigen.) Linux 2.4 entsprécht den Ufuerderungen POSIX 1003.1-2001 fir dës Signaler, déi den Prozess mat engem Core Dump beendent ginn.
Niewent aner aner Signaler.
Signal | Wäert | Action | Kommentéieren |
SIGEMT | 7, -, 7 | Term | |
SIGSTKFLT | -, 16, - | Term | Stack Fehl um Coprozessor (net benotzte) |
SIGIO | 23,29,22 | Term | I / O elo méiglech (4.2 BSD) |
SIGCLD | -, -, 18 | Ign | A Synonym fir SIGCHLD |
SIGPWR | 29,30,19 | Term | Energieschwaass (System V) |
SIGINFO | 29, -, - | E Synonym fir SIGPWR | |
SIGLOST | -, -, - | Term | Datei Schlëssel verluer |
SIGWINCH | 28,28,20 | Ign | Faarfgréisst änneren (4,3 BSD, Sonn) |
SIGUNUSED | -, 31, - | Term | Net benotze Signal (gëtt SIGSYS) |
(Signal 29 ass SIGINFO / SIGPWR op engem Alpha, awer SIGLOST op engem Spack.)
SIGEMT gëtt net an POSIX 1003.1-2001 uginn, mee Neverthless steet op de meeschte aner Uniseen, wou seng Standard-Aktioun normalerweis fir de Prozess mat engem Core Dump ze kündigen.
SIGPWR (wat net a POSIX 1003.1-2001 bezeechent gëtt) gëtt normalerweis ignoréiert op déi aner Uniseen wou et steet.
SIGIO (wat net a POSIX 1003.1-2001 festgeluecht gëtt) gëtt op e puer aner Uniseen ignoréiert.
Real-time Signal
Linux ënnerstëtzt Echtzäit Signaler, déi ursprénglech an der POSIX.4-Echtzeiterweiterungen definéiert sinn (an elo POSIX 1003.1-2001). Linux ënnerstëtzt 32 Echtzäit Signaler, déi vun 32 ( SIGRTMIN ) op 63 ( SIGRTMAX ) nummeréiert sinn . (Programmer sollen ëmmer op Echtzeit Signaler mat Benotzungssymbol SIGRTMIN + n bezuelen, well d'Band vun Echtzäit Signal vun der Unisech variéiert.)
Am Géigesaz zu den normale Signaler hunn d'Echtzäit Signaler keng prénominéiert Bedeitungen hunn: De ganze Set vun Echtzäit Signaler kann fir applizéiert definéiert Zwecker benotzt ginn. (Notiz datt d'LinuxThreads Implementatioun benotzt déi éischt dräi Echtzäit Signaler.)
D'Standardaktioun fir e onverëffentlecht Echtzäit Signal ass den Empfangsprozess ze kündelen.
Real-Signaler si ënnerscheet:
- Verschidde Facetten vun Echtzäit Signaler kënnen ugräifen. Am Géigesaz, wann verschidde Fälle vun engem Standard Signal geliwwert ginn, während dat Signal dat momentan gespaart gëtt, dann ass nëmmen eng Instanz queesch.
- Wann de Signal mat Sigqueue 2 versandt gëtt , kann en accompagnierende Wäert (entweder eng Integer oder e Pointer) mat dem Signal geschéckt ginn. Wann de Empfangsprozess eng Handler fir dësen Signal mat dem SA_SIGACTION- Fändel op SIGGETS (2) festleet, da kann hien dës Donnée iwwert de Feld si_value vun der siginfo_t Struktur erreechen als de Second Argument fir de Handler. Zousätzlech kënnen d' Si_pid- a Si_uid Felder vun dëser Struktur benotzt fir PID- a reelle Benotzer ID vun dem Prozess ze kréien, deen de Signal verschéckt.
- D'Realzeitsignale ginn an enger garantéierter Uerdellung geliwwert. Verschidde Echtzäit Signaler vum selwechten Typ ginn an der Uerdnung geliwwert, déi se geschéckt hunn. Wann verschidden Echtzäitë fir e Prozess verschéckt ginn, ginn se mat dem nidderegste nummerë Signal ausgeliwwert. (Ie, nummern Signaler hunn déi héchst Prioritéit.)
Wann zwee Standzeechen a Real-Time-Signaler fir e Prozess anhalen, gëtt POSIX et net spezifizéiert deen zuerst geliwwert gëtt. Linux, wéi vill aner Implementatiounen, huet Prioritéit zu Standardsignalen an dësem Fall.
Laut POSIX soll eng Ëmsetzung duerch d'Realzeechen vun _POSIX_SIGQUEUE_MAX (32) erméiglechen, fir e Prozess ze kierzen. Allerdéngs, wéi eplaz e Pro-Prozess-Limit platzéiert, léisst Linux onofhängeg Limitatioun vun der Unzuel vun Ureegele vun Echtzäit-Signaler fir all Prozesser.
Dëse Limit kann an der Regioun / proc / sys / kernel / rtsig-max agefouert ginn (a mat Privileg). Eng verwandte Fichier, / proc / sys / kernel / rtsig-max , kann benotzt ginn fir erauszefannen, wéi vill Echtzäit Signaler am Moment waarden.
CONFORMING TO
POSIX.1
Wichteg: Benotzt de Mann Kommando ( % Mann ) fir ze kucken wéi e Kommando op Äre Computer benotzt.