Linux ondersteun beide POSIX betroubare seine (hierna "standaardseine") en POSIX real-time seine.
Standaardseine
Linux ondersteun die standaard seine wat hieronder gelys word. Verskeie seingetalle is argitektuur afhanklik, soos aangedui in die "Waarde" kolom. (Waar drie waardes gegee word, is die eerste een gewoonlik geldig vir alfa en sparc, die middelste een vir i386, ppc en sh, en die laaste vir mips.
A - dui aan dat 'n sein afwesig is op die ooreenstemmende argitektuur.)
Die inskrywings in die kolom 'Aksie' in die tabel spesifiseer die standaardaksie vir die sein, soos volg:
termyn
Standaard aksie is om die proses te beëindig.
IGN
Standaard aksie is om die sein te ignoreer.
Core
Verstekoptrede is om die proses te beëindig en kern te dump.
stop
Standaard aksie is om die proses te stop.
Eerstens die seine wat in die oorspronklike POSIX.1 standaard beskryf word.
sein | waarde | aksie | kommentaar |
of die dood van die beheerproses | |||
SIGINT | 2 | termyn | Onderbreek van sleutelbord |
SIGQUIT | 3 | Core | Hou van sleutelbord af |
SIGILL | 4 | Core | Onwettige Onderrig |
SIGABRT | 6 | Core | Ontbreek sein van aborteer (3) |
SIGFPE | 8 | Core | Vlotpunt uitsondering |
SIGKILL | 9 | termyn | Doodsein |
SIGSEGV | 11 | Core | Ongeldige geheueverwysing |
SIGPIPE | 13 | termyn | Gebroke pyp: skryf aan pyp met geen lesers nie |
SIGALRM | 14 | termyn | Timer sein vanaf alarm (2) |
SIGTERM | 15 | termyn | Beëindiging sein |
SIGUSR1 | 30,10,16 | termyn | Gebruiker-gedefinieerde sein 1 |
SIGUSR2 | 31,12,17 | termyn | Gebruiker-gedefinieerde sein 2 |
SIGCHLD | 20,17,18 | IGN | Kind gestop of beëindig |
SIGCONT | 19,18,25 | Gaan voort as gestop | |
SIGSTOP | 17,19,23 | stop | Stop proses |
SIGTSTP | 18,20,24 | stop | Stop op tty getik |
SIGTTIN | 21,21,26 | stop | tty insette vir agtergrond proses |
SIGTTOU | 22,22,27 | stop | tty-uitset vir agtergrondproses |
Die seine SIGKILL en SIGSTOP kan nie gevang, geblokkeer of geïgnoreer word nie.
Volgende die seine nie in die POSIX.1 standaard nie, maar beskryf in SUSv2 en SUSv3 / POSIX 1003.1-2001.
sein | waarde | aksie | kommentaar |
SIGPOLL | termyn | Pollable gebeurtenis (Sys V). Sinoniem van SIGIO | |
SIGPROF | 27,27,29 | termyn | Profileringstydperk het verstryk |
SIGSYS | 12, - 12 | Core | Slegte argument vir roetine (SVID) |
SIGTRAP | 5 | Core | Trace / breakpoint trap |
SIGURG | 16,23,21 | IGN | Dringende toestand op sok (4.2 BSD) |
SIGVTALRM | 26,26,28 | termyn | Virtuele wekker (4,2 BSD) |
SIGXCPU | 24,24,30 | Core | CPU tydsbeperking oorskry (4.2 BSD) |
SIGXFSZ | 25,25,31 | Core | Lêergrootte limiet oorskry (4.2 BSD) |
Tot en met Linux 2.2, sou die standaard gedrag vir SIGSYS , SIGXCPU , SIGXFSZ en (op ander argitektuur as SPARC en MIPS) die proses beëindig (sonder 'n kerndump ). (Op sommige ander Unices is die standaard aksie vir SIGXCPU en SIGXFSZ die proses sonder 'n kerndump te beëindig.) Linux 2.4 voldoen aan die POSIX 1003.1-2001 vereistes vir hierdie seine, en die proses word afgesluit met 'n kerndump.
Volgende verskeie ander seine.
sein | waarde | aksie | kommentaar |
SIGEMT | 7, -, 7 | termyn | |
SIGSTKFLT | - 16, - | termyn | Stack fout op coprocessor (ongebruikte) |
SIGIO | 23,29,22 | termyn | Ek / O nou moontlik (4,2 BSD) |
SIGCLD | -, -, 18 | IGN | 'N sinoniem vir SIGCHLD |
SIGPWR | 29,30,19 | termyn | Kragonderbreking (Stelsel V) |
SIGINFO | 29, -, - | 'N Sinoniem vir SIGPWR | |
SIGLOST | -, -, - | termyn | Lêervergrendeling verloor |
SIGWINCH | 28,28,20 | IGN | Venster resize sein (4.3 BSD, Sun) |
SIGUNUSED | - 31 - | termyn | Ongebruikte sein (sal SIGSYS wees) |
(Sein 29 is SIGINFO / SIGPWR op 'n alfa maar SIGLOST op 'n sparc.)
SIGEMT is nie gespesifiseer in POSIX 1003.1-2001 nie, maar onnodig verskyn op die meeste ander Unices, waar die verstekaksie gewoonlik die proses met 'n kern dump beëindig.
SIGPWR (wat nie in POSIX 1003.1-2001 gespesifiseer word nie) word gewoonlik verontagsaam op die ander Unices waar dit voorkom.
SIGIO (wat nie in POSIX 1003.1-2001 gespesifiseer word nie) word standaard verontagsaam op verskeie ander Unices.
Real-time Signals
Linux ondersteun real-time seine soos oorspronklik gedefinieer in die POSIX.4 real-time uitbreidings (en nou ingesluit in POSIX 1003.1-2001). Linux ondersteun 32 real-time seine, genommer van 32 ( SIGRTMIN ) tot 63 ( SIGRTMAX ). (Programme moet altyd verwys na real-time seine deur gebruik te maak van notasie SIGRTMIN + n, aangesien die reeks realtime seingetalle wissel oor Unices.)
In teenstelling met standaard seine, real-time seine het geen voorafbepaalde betekenisse nie: die hele stel real-time seine kan gebruik word vir toepassing-gedefinieerde doeleindes. (Let egter daarop dat die LinuxThreads-implementering die eerste drie real-time seine gebruik.)
Die standaardaksie vir 'n onbehandelde real-time sein is om die ontvangingsproses te beëindig.
Real-time seine word onderskei deur die volgende:
- Meervoudige instansies van real-time seine kan in die ry gestel word. As daar egter verskeie gevalle van 'n standaardsein gelewer word terwyl die sein tans geblokkeer word, is slegs een voorbeeld in die ry.
- As die sein gestuur word met sigqueue (2), kan 'n meegaande waarde (óf 'n heelgetal of 'n wyser) met die sein gestuur word. As die ontvangsproses 'n hanteerder vir hierdie sein opstel met die SA_SIGACTION- vlag na sigaksie (2), kan dit hierdie data verkry via die si_value- veld van die siginfo_t- struktuur wat as die tweede argument aan die hanteerder geslaag is. Verder kan die si_pid en si_uid velde van hierdie struktuur gebruik word om die PID en werklike gebruikers ID van die proses wat die sein stuur, te verkry.
- Real-time seine word in 'n gewaarborgde bestelling gelewer. Meervoudige real-time seine van dieselfde tipe word gelewer in die volgorde wat hulle gestuur is. As verskillende real-time seine na 'n proses gestuur word, word hulle afgelewer met die laagste genommerde sein. (Dws, lae genommerde seine het die hoogste prioriteit.)
As beide standaard en real-time seine vir 'n proses hang, bly POSIX ongespesifiseerde wat eers afgelewer word. Linux, soos baie ander implementasies, gee voorkeur aan standaardseine in hierdie geval.
Volgens POSIX moet 'n implementering ten minste _POSIX_SIGQUEUE_MAX (32) real-time seine toelaat om in 'n proses te wag. In plaas daarvan om 'n per-proses limiet te plaas, lê Linux 'n stelsel wye limiet in vir die aantal wagtydse realtime seine vir alle prosesse.
Hierdie limiet kan aangevra word (en met voorreg) verander via die / proc / sys / kernel / rtsig-maksimum lêer. 'N Verwante lêer, / proc / sys / kernel / rtsig-max , kan gebruik word om uit te vind hoeveel real-time seine tans in die ry is.
OORFORMERING TOT
POSIX.1
Belangrik: Gebruik die man opdrag ( % man ) om te sien hoe 'n opdrag op u rekenaar gebruik word.