Linux understøtter begge POSIX pålidelige signaler (herefter "standard signaler") og POSIX real-time signaler.
Standard Signaler
Linux understøtter standardsignalerne nedenfor. Flere signalnumre er arkitekturafhængige, som angivet i kolonnen "Værdi". (Hvor tre værdier er angivet, gælder den første for alfa og sparc, den midterste for i386, ppc og sh, og den sidste til mips.
A - angiver, at et signal er fraværende på den tilsvarende arkitektur.)
Indtastningerne i kolonnen "Action" i tabellen angiver standard handling for signalet som følger:
Semester
Standard handling er at afslutte processen.
Ign
Standard handling er at ignorere signalet.
Core
Standard handling er at afslutte processen og dump kerne.
Hold op
Standard handling er at stoppe processen.
Først signalerne beskrevet i den oprindelige POSIX.1 standard.
Signal | Værdi | Handling | Kommentar |
eller død af kontrolprocessen | |||
SIGINT | 2 | Semester | Afbryd fra tastaturet |
SIGQUIT | 3 | Core | Afslut fra tastaturet |
SIGILL | 4 | Core | Ulovlig instruktion |
SIGABRT | 6 | Core | Afbryd signal fra abort (3) |
SIGFPE | 8 | Core | Flydende punkt undtagelse |
SIGKILL | 9 | Semester | Dræbte signal |
SIGSEGV | 11 | Core | Ugyldig hukommelsesreference |
SIGPIPE | 13 | Semester | Brækket rør: skriv til rør uden læsere |
SIGALRM | 14 | Semester | Timer signal fra alarm (2) |
SIGTERM | 15 | Semester | Afslutningssignal |
SIGUSR1 | 30,10,16 | Semester | Brugerdefineret signal 1 |
SIGUSR2 | 31,12,17 | Semester | Brugerdefineret signal 2 |
SIGCHLD | 20,17,18 | Ign | Barn stoppet eller afsluttet |
SIGCONT | 19,18,25 | Fortsæt, hvis stoppet | |
SIGSTOP | 17,19,23 | Hold op | Stop proces |
SIGTSTP | 18,20,24 | Hold op | Stop talt ved tty |
SIGTTIN | 21,21,26 | Hold op | tty input til baggrundsproces |
SIGTTOU | 22,22,27 | Hold op | tty output til baggrundsproces |
SignalerneSIGKILL ogSIGSTOP kan ikke fanges, blokeres eller ignoreres.
Dernæst signalerne ikke i POSIX.1 standarden, men beskrevet i SUSv2 og SUSv3 / POSIX 1003.1-2001.
Signal | Værdi | Handling | Kommentar |
SIGPOLL | Semester | Pollable event (Sys V). Synonym af SIGIO | |
SIGPROF | 27,27,29 | Semester | Profileringstiden udløbet |
SIGSYS | 12,-,12 | Core | Dårlig argument til rutine (SVID) |
SIGTRAP | 5 | Core | Trace / breakpoint trap |
SIGURG | 16,23,21 | Ign | Haster tilstand på stikkontakt (4,2 BSD) |
SIGVTALRM | 26,26,28 | Semester | Virtuelt vækkeur (4,2 BSD) |
SIGXCPU | 24,24,30 | Core | CPU-tidsgrænse overskredet (4,2 BSD) |
SIGXFSZ | 25,25,31 | Core | Filstørrelsesgrænse overskredet (4,2 BSD) |
Op til og med Linux 2.2, standardadfærd forSIGSYS, SIGXCPU, SIGXFSZ, og (på andre arkitekturer end SPARC og MIPS)SIGBUS var at afslutte processen (uden kernedump). (På nogle andre Unices er standard handling forSIGXCPU ogSIGXFSZ er at afslutte processen uden et kernedump.) Linux 2.4 er i overensstemmelse med POSIX 1003.1-2001-kravene til disse signaler og afslutter processen med et kernedump.
Næste forskellige andre signaler.
Signal | Værdi | Handling | Kommentar |
SIGEMT | 7,-,7 | Semester | |
SIGSTKFLT | -,16,- | Semester | Stackfejl på coprocessor (ubrugt) |
SIGIO | 23,29,22 | Semester | I / O nu muligt (4,2 BSD) |
SIGCLD | -,-,18 | Ign | Et synonym for SIGCHLD |
SIGPWR | 29,30,19 | Semester | Strømsvigt (System V) |
SIGINFO | 29,-,- | Et synonym for SIGPWR | |
SIGLOST | -,-,- | Semester | Fillås tabt |
SIGWINCH | 28,28,20 | Ign | Window resize signal (4,3 BSD, Sun) |
SIGUNUSED | -,31,- | Semester | Ubrugt signal (bliver SIGSYS) |
(Signal 29 erSIGINFO / SIGPWR på en alfa menSIGLOST på en sparc.)
SIGEMT er ikke specificeret i POSIX 1003.1-2001, men det vises aldrig uden for de fleste andre Unices, hvor standardhandlingen typisk er at afslutte processen med et kernedump.
SIGPWR (som ikke er angivet i POSIX 1003.1-2001), ignoreres som standard på de andre Unices, hvor den vises.
SIGIO (som ikke er angivet i POSIX 1003.1-2001) ignoreres som standard på flere andre Unices.
Realtidssignaler
Linux understøtter realtidssignaler som oprindeligt defineret i real-time-udvidelserne POSIX.4 (og nu inkluderet i POSIX 1003.1-2001). Linux understøtter 32 realtidssignaler, nummereret fra 32 (SIGRTMIN) til 63 (SIGRTMAX). (Programmer skal altid referere til realtidssignaler ved brug af notationSIGRTMIN+ n, da rækkevidde af realtidssignalantal varierer over Unices.)
I modsætning til standardsignaler har realtidssignaler ingen foruddefinerede betydninger: hele sæt realtids signaler kan bruges til applikationsdefinerede formål. (Bemærk dog, at implementeringen af LinuxThreads bruger de første tre real-time signaler.)
Standardhandlingen for et uhåndteret realtidssignal er at afslutte modtagelsesprocessen.
Realtidssignaler skelnes af følgende:
- Flere forekomster af realtidssignaler kan være i kø. I modsætning hertil, hvis flere forekomster af et standardsignal leveres, mens signalet for øjeblikket er blokeret, er der kun en forekomst i køen.
- Hvis signalet sendes medsigqueue(2) kan en ledsagende værdi (enten et helt tal eller en pointer) sendes med signalet. Hvis modtagelsesprocessen etablerer en håndterer til dette signal ved hjælp afSA_SIGACTION flag tilsigaction(2) så kan den få disse data via si_value felt af siginfo_t struktur bestået som det andet argument til handleren. Desuden er det si_pid og si_uid felter i denne struktur kan bruges til at opnå PID og ægte bruger-ID for processen, der sender signalet.
- Realtidssignaler leveres i en garanteret rækkefølge. Flere realtidssignaler af samme type leveres i den rækkefølge, de blev sendt. Hvis forskellige realtidssignaler sendes til en proces, leveres de ud fra det laveste nummererede signal. (F.eks. Ringe signaler har højeste prioritet.)
Hvis både standard og realtidssignaler afventer en proces, efterlader POSIX det uspecificeret, hvilket leveres først. Linux, som mange andre implementeringer, prioriterer standardsignaler i dette tilfælde.
Ifølge POSIX skal en implementering tillade, at mindst _POSIX_SIGQUEUE_MAX (32) realtidssignaler skal være i kø i en proces. Men i stedet for at placere en grænse pr. Proces, indfører Linux en systemgrænse for antallet af kø i realtidssignaler for alle processer.
Denne grænse kan ses (og med privilegium) ændret via / Proc / sys / kernel / rtsig-max fil. En relateret fil, / Proc / sys / kernel / rtsig-max , kan bruges til at finde ud af, hvor mange realtidssignaler der for øjeblikket er i kø.
OVERFORM TIL
POSIX.1
Vigtig: Brug mand kommando ( % mand ) for at se, hvordan en kommando bruges på din computer.