Signal - Linux / Unix Command

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:

  1. 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.
  2. 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.
  3. 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.