Signal (Unix)

Når du bruger Unix- operativsystemet , er et signal en systemmeddelelse til en kørende proces . Signaler er en primitiv form for kommunikation mellem processer . De fleste signaler forårsager også en handling - normalt afslutter processen. Andre bruges dog kun til informationsformål (f.eks.SIGWINCH) eller kan stoppe en proces (SIGSTOP). Der er også signaler, der frit kan bruges af brugeren (SIGUSR1 og SIGUSR2). Nogle signaler kan opfanges eller undertrykkes af processen. Så fang z. B. nogle serverprogrammer (i Unix-jargon " daemon ") SIGUSR1 eller SIGUSR2 og læses derefter i deres konfigurationsfiler igen.

Almindelige UNIX-signaler

De sædvanlige signaler er angivet nedenfor med deres numre. De understøttede signaler og deres værdier kan variere fra system til system. POSIX.1-standarden giver forskellige numeriske værdier afhængigt af den anvendte hardwarearkitektur.

Den præfiks SIG er den korte formular for Signal.

Kommandoen kill -ludsender normalt alle understøttede signalnumre med deres tilknyttede navne. Tabellen nedenfor indeholder følgende værdier som et eksempel:

signal Værdier, synonym Betyder Betydning (oversat) Oprindelig brug, standarder
EN. B. C. D.
SIGHUP 1 Hangout detekteret ved kontrol af terminal eller død af kontrolproces Blokering af kontrolterminalen eller afslutningen af kontrolprocessen . POSIX (1990)
SIGINT 2 Afbryd fra tastaturet; interaktivt opmærksomhedssignal. Afbrydelse af tastatur interaktivt advarselssignal. C89 ; POSIX (1990)
SIGQUIT 3 Afslut fra tastaturet. Gå ud gennem tastaturet.
SIGILL 4. plads Ulovlig instruktion. Ugyldig instruktion. C89; POSIX (1990)
SIGTRAP 5 Spor / brudpunktsfælde. Stopmærket nået. SUSv2 ; POSIX (2001)
SIGABRT 6. Unormal ophør afbryde signal fra afbrydelse (3). unormal opsigelse . C89; POSIX (1990)
SIGIOT
SIGIOT 6. IOT fælde; afbryde () på en PDP11. 4.2BSD
SIGABRT
SIGEMT - 7. - 7.
SIGBUS 10 10 7. 10 BUS-fejl (dårlig hukommelsesadgang). BUS-fejl ( hukommelsesadgangsfejl ). 4.2BSD; SUSv2; POSIX (2001)
SIGFPE 8. plads "Undtagelse med flydepunkt": fejlagtig aritmetisk handling. " Fejl ved undtagelse af flydende punkt ": forkert aritmetisk handling. C89; POSIX (1990)
SIGKILL 9 Dræb, kan ikke blokeres. Frakoblingsbar udgang. POSIX (1990)
SIGUSR1 30. 30. 10 16 Brugerdefineret signal 1. Brugerdefineret signal 1. POSIX
SIGSEGV 11 "Segmenteringsovertrædelse": ugyldig hukommelsesreference. " Beskyttelsesfejl ": ugyldig hukommelsesreference. C89; POSIX (1990)
SIGUSR2 31 31 12. 17. Brugerdefineret signal 2. Brugerdefineret signal 2. POSIX
SIGPIPE 13. "Brudt rør": skriv til rør uden læsere. "Brudt rør ": Skrivning til et rør uden modtager. POSIX (1990)
SIGALRM 14. Alarmur timer signal: alarm (2). Alarmsignal: Alarm (2). POSIX (1990)
SIGTERM 15. Opsigelsesanmodning. Opsigelsesanmodning . C89; POSIX (1990)
SIGSTKFLT - - 16 - Stakfejl på coprocessor (ubrugt). Stakfejl på coprocessor (ikke brugt).
SIGCHLD 20. 20. 17. 18. Barnestatus er ændret (stoppet eller afsluttet). Barnestatus er blevet ændret (sat på pause eller afsluttet). POSIX (1990)
SIGCLD
SIGCLD 20. - - - Gammelt system V-navn; barnets status er ændret. Old System V betegnelse; Barnestatus er blevet ændret. System V
SIGCHLD
SIGCONT 19. 19. 18. 25 Fortsæt stoppet proces. Genoptag den pausede proces. POSIX
SIGSTOP 17. 17. 19. 23 Stop processen, kan ikke blokeres. Stop processen, der kan blokeres. POSIX
SIGTSTP 18. 18. 20. 24 Stop med at skrive på tastaturet. Indtast stop på tastaturet. POSIX
SIGTTIN 21. 21. 21. 26. Baggrund læst fra tty. Læsning fra terminalen i baggrunden POSIX
SIGTTOU 22 22 22 27 Baggrundsskrivning til tty Skrivning på en terminal i baggrunden. POSIX
SIGURG 16 16 23 21. Hastende tilstand på stikkontakten: data med høj båndbredde er tilgængelige. Vigtig tilstand på stikkontakten: Data med høj båndbredde er tilgængelige. 4.2BSD; SUSv2; POSIX (2001)
SIGXCPU 24 24 24 30. CPU-tidsgrænse overskredet. Processorens tidsgrænse er overskredet. 4.2BSD; SUSv2; POSIX (2001)
SIGXFSZ 25 25 25 31 Grænsen for filstørrelse overskredet. Grænsen for filstørrelse overskredet. 4.2BSD; SUSv2; POSIX (2001)
SIGVTALRM 26. 26. 26. 28 Virtuelt vækkeur. Virtuelt vækkeur. 4.2BSD; SUSv2; POSIX (2001)
SIGPROF 27 27 27 29 Profilering af alarmur er udløbet. 4.2BSD; SUSv2; POSIX (2001)
SIGWINCH - 28 28 20. Ændring af vinduesstørrelse. Vinduesstørrelse ændret. 4.3BSD; Sol
SIGPOLL 23 23 / - 29 / - 23 / - Der blev opstået en pollable begivenhed. En begivenhed, der kan spørges, opstod. System V; SUSv2; POSIX (2001)
SIGIO
SIGIO 23 23 29 23 I / O nu mulig. I / O nu mulig. 4.2BSD
SIGPOLL
SIGINFO - (29) - - Statusanmodning fra tastaturet. Statusanmodning via tastaturet. macOS
SIGPWR
SIGLOST - (29) / - - - Ubrugt; kun på Sparc: fillås mistet. Ubrugt; kun under Sparc: fillås tabt.
SIGPWR - (29) 30. 19. Genstart af strømsvigt. Strømsvigt forårsagede genstart. System V
SIGINFO
SIGSYS 12. 12. 31 12. Dårligt systemopkald. ugyldigt systemopkald . System Vr4; SUSv2; POSIX (2001)
SIGUNUSERET
SIGUNUSERET 12. - 31 / - -
SIGSYS

Nyere Linux- versioner bruger op til 32 ekstra signaler fra 33 (eller 34 eller 35 afhængigt af C-biblioteket) ( SIGRTMIN ) til 64 ( SIGRTMAX ) som realtidssignaler ud over de sædvanlige 31 signalnumre .

Handlinger

Programmernes standardopførsel, når de modtager et af signalerne, er et af følgende:

  • Stop (slutter ikke) det kørende program.
  • Genoptag det tidligere stoppede program.
  • Afslutter programmet uden hukommelsesdump.
  • Afslut programmet ved at skrive en hukommelsesdump.
  • Ignorer signalet.

Bortset fra SIGKILL og SIGSTOP kan signalerne "opfanges" af programmet og udløse en anden reaktion.

Se også

Den UNIX-kommando drab kan bruges til at sende nogen signaler under Unix.

Weblinks