www.wikidata.de-de.nina.az
Bei Verwendung des Betriebssystems Unix ist ein Signal eine Systemnachricht an einen laufenden Prozess Signale sind eine primitive Form der Interprozesskommunikation Die meisten Signale bewirken auch eine Aktion meist das Beenden des Prozesses Andere hingegen dienen lediglich der Information z B SIGWINCH oder konnen einen Prozess anhalten SIGSTOP Es gibt auch vom Benutzer frei verwendbare Signale SIGUSR1 und SIGUSR2 Einige Signale konnen vom Prozess abgefangen oder unterdruckt werden So fangen z B manche Serverprogramme im Unix Jargon Daemon SIGUSR1 oder SIGUSR2 ab und lesen dann ihre Konfigurationsdateien neu ein Inhaltsverzeichnis 1 Gangige UNIX Signale 2 Aktionen 3 Aktion andern 4 Signalquellen 5 Literatur 6 Siehe auch 7 Weblinks 8 EinzelnachweiseGangige UNIX Signale BearbeitenIm Folgenden werden die ublichen Signale mit ihren Nummern aufgelistet Die unterstutzten Signale und deren Werte konnen sich von System zu System unterscheiden Der POSIX 1 Standard sieht hierbei unterschiedliche numerische Werte abhangig von der verwendeten Hardwarearchitektur vor Beim Prafix SIG handelt es sich jeweils um die Kurzform von Signal Mit dem Befehl kill l werden gewohnlich alle unterstutzten Signalnummern mit den zugehorigen Namen ausgegeben Die Tabelle unten enthalt beispielhaft die folgenden Werte Spalte A GNU C Bibliothek Spalte B Linux Architekturen Alpha und SPARC Spalte C Linux x86 AMD64 ARM und die meisten anderen Prozessorarchitekturen Spalte D Linux MIPSSignal Werte Synonym Bedeutung englisch Bedeutung ubersetzt Ursprungliche Verwendung StandardsA B C DSIGHUP 1 Hangup detected on controlling terminal or death of controlling process Unterbrechung der Verbindung zum Terminal System V 1 POSIX 1990 SIGINT 2 Interrupt from keyboard interactive attention signal Interrupt durch die Tastatur interaktives Warnsignal C89 POSIX 1990 SIGQUIT 3 Quit from keyboard Beenden durch die Tastatur SIGILL 4 Illegal instruction Ungultige Anweisung C89 POSIX 1990 SIGTRAP 5 Trace breakpoint trap Haltemarke erreicht SUSv2 POSIX 2001 SIGABRT 6 Abnormal termination abort signal from abort 3 abnormale Beendigung C89 POSIX 1990 SIGIOTSIGIOT 6 IOT trap abort on a PDP11 4 2BSDSIGABRTSIGEMT 7 7SIGBUS 10 10 7 10 BUS error bad memory access BUS Fehler Speicherzugriffsfehler 4 2BSD SUSv2 POSIX 2001 SIGFPE 8 Floating point exception erroneous arithmetic operation Gleitkommaoperation Ausnahmefehler fehlerhafte arithmetische Operation C89 POSIX 1990 SIGKILL 9 Kill unblockable Unblockbares Beenden POSIX 1990 SIGUSR1 30 30 10 16 User defined signal 1 Benutzerdefiniertes Signal 1 POSIXSIGSEGV 11 Segmentation violation invalid memory reference Schutzverletzung ungultige Speicherreferenz C89 POSIX 1990 SIGUSR2 31 31 12 17 User defined signal 2 Benutzerdefiniertes Signal 2 POSIXSIGPIPE 13 Broken pipe write to pipe with no readers Broken pipe Schreiben auf eine Pipe ohne Empfanger POSIX 1990 SIGALRM 14 Alarm clock timer signal alarm 2 Wecker Signal Alarm 2 POSIX 1990 SIGTERM 15 Termination request Beendigungsanfrage C89 POSIX 1990 SIGSTKFLT 16 Stack fault on coprocessor unused Stapelfehler auf Coprozessor unbenutzt SIGCHLD 20 20 17 18 Child status has changed stopped or terminated Kindstatus wurde geandert angehalten oder beendet POSIX 1990 SIGCLDSIGCLD 20 Old System V name child status has changed Alte System V Bezeichnung Kindstatus wurde geandert System VSIGCHLDSIGCONT 19 19 18 25 Continue stopped process Fahre angehaltenen Prozess fort POSIXSIGSTOP 17 17 19 23 Stop process unblockable Halte Prozess an unblockierbar POSIXSIGTSTP 18 18 20 24 Stop typed at keyboard Eingabe von Stop durch die Tastatur POSIXSIGTTIN 21 21 21 26 Background read from tty Lesen vom Terminal im Hintergrund POSIXSIGTTOU 22 22 22 27 Background write to tty Schreiben auf ein Terminal im Hintergrund POSIXSIGURG 16 16 23 21 Urgent condition on socket high bandwidth data is available Wichtiger Zustand auf Socket Daten mit hoher Bandbreite sind verfugbar 4 2BSD SUSv2 POSIX 2001 SIGXCPU 24 24 24 30 CPU time limit exceeded Prozessorzeitbegrenzung uberschritten 4 2BSD SUSv2 POSIX 2001 SIGXFSZ 25 25 25 31 File size limit exceeded Dateigrossenbeschrankung uberschritten 4 2BSD SUSv2 POSIX 2001 SIGVTALRM 26 26 26 28 Virtual alarm clock Virtueller Wecker 4 2BSD SUSv2 POSIX 2001 SIGPROF 27 27 27 29 Profiling alarm clock timer expired 4 2BSD SUSv2 POSIX 2001 SIGWINCH 28 28 20 Window size change Fenstergrosse anderte sich 4 3BSD SunSIGPOLL 23 23 29 23 Pollable event occurred Abfragbares Ereignis aufgetreten System V SUSv2 POSIX 2001 SIGIOSIGIO 23 23 29 23 I O now possible I O jetzt moglich 4 2BSDSIGPOLLSIGINFO 29 Status request from keyboard Statusanfrage durch die Tastatur macOSSIGPWRSIGLOST 29 Unused only on Sparc file lock lost Unbenutzt nur unter Sparc Dateisperre verloren SIGPWR 29 30 19 Power failure restart Stromausfall bedingter Neustart System VSIGINFOSIGSYS 12 12 31 12 Bad system call ungultiger Systemaufruf System Vr4 SUSv2 POSIX 2001 SIGUNUSEDSIGUNUSED 12 31 SIGSYSNeuere Linux Versionen verwenden neben den ublichen 31 Signalnummern noch bis zu 32 weitere Signale als Echtzeit Real Time Signale von SIGRTMIN je nach C Bibliothek 33 34 oder 35 bis SIGRTMAX 64 Aktionen BearbeitenDurch ein Signal kann jeweils eine der folgenden Aktionen ausgelost werden Anhalten nicht beenden des Prozesses Fortsetzen des zuvor angehaltenen Prozesses Beenden des Prozesses ohne einen Speicherauszug Der Elternprozess kann die Signalnummer ermitteln In den Ergebnissen der Funktionen wait waitpid usw ist die Nummer enthalten 2 Beenden des Prozesses mit Schreiben eines Speicherauszug Bei vielen Systemen kann der Speicherauszug begrenzt werden z B in der bash durch ulimit c Die Signalnummer ist im Speicherauszug enthalten Der Elternprozess kann die Signalnummer genauso wie beim Beenden ohne Speicherauszug ermitteln Ignorieren des Signals Aufrufen eines Unterprogramms Signalhandler zum Bearbeiten des Signals dies wird abfangen genannt Der Signalhandler muss vom Prozess eingestellt werden bevor signalisiert wird Der Signalhandler lauft innerhalb des Prozesses und kann auf die Daten des Prozesses zugreifen Bis auf die letzte Aktion Signalhandler kommen die Aktionen als standard default Aktion vor Aktion andern BearbeitenAusser bei den Signalen SIGKILL und SIGSTOP ist die Reaktion auf ein Signal durch den Prozess einstellbar Dazu gibt es mehrere Moglichkeiten Ein Verfahren ist in System V und ANSI C durch die Funktion signal 3 implementiert Diese Funktion ist aus vielen Programmumgebungen erreichbar z B trap bei den ublichen Shells oder die Funktion signal im gleichnamigen Modul der Programmiersprache Python 4 Daneben gibt es in der Berkeley Software Distribution BSD Moglichkeiten Signale zu blockieren und spater zu verarbeiten sigvec usw 5 Weiterhin gibt es den POSIX Standard sigaction 6 Das Signal wird durch einen einfachen Datentyp eine Nummer reprasentiert die ublicherweise als Symbolische Konstante angegeben wird Der Ubersetzer oder Interpreter ermittelt zum Symbol die Nummer Das ermoglicht die Ubertragung von Programmen auf anderen Unix Plattformen ohne die Symbole zu andern POSIX gibt fur verschiedene Hardwareplatformen unterschiedliche Zahlen fur die Signale an Die Signalnummern werden durch Dateien wie signal h signal py und ahnlichen bekannt gemacht Der Signalhandler ist eine einfache Funktion die die Signalnummer als Parameter bekommt Bei BSD und POSIX gibt es weitere Parameter Der Signalhandler kann im Programm Variablen setzen und Funktionen aufrufen z B exit um den Prozess zu beenden Die oben genannten Funktionen kennen als Signalhandler besondere symbolische Konstanten SIG DFL stellt die normale default Aktion des Signals ein SIG IGN fuhrt zum Ignorieren des Signals Signalquellen BearbeitenDie Quelle eines Signals kann in verschiedenen Schichten des Systems liegen sei es Hardware Kernel Geratetreiber oder Anwendungssoftware Hardware und Software andern sich mit dem technischen Fortschritt Trotz Standardisierungen ist manches uneinheitlich Der POSIX Standard sieht Abweichungen vor CPU englisch Central Processing Unit zentrale Arbeitseinheit Hier entstehen Signale wie SIGILL ungultiger Opcode und SIGTRAP CPU FPU englisch Floating Point Unit Recheneinheit Hier entstehen Signale wie SIGFPE englisch Floating Point Error Rechenfehler Ein leicht zu reproduzierende Rechenfehler ist die Division durch Null CPU MMU englisch Memory Management Unit Speicherverwaltungseinheit Hier entstehen Signale wie SIGBUS und SIGSEGV GeratetreiberDie ersten drei Signale mit den Nummern eins bis drei sind SIGHUP SIGINT SIGQUIT Sie kommen ursprunglich aus dem Geratetreiber fur Terminals Historisch waren das Treiber fur serielle Schnittstellen heute sind es meist Pseudoterminals Kernel Der Kernel sendet beim Beenden eines Prozesses an den Elternprozess ein Signal SIGCLD oder SIGCHLD Das Erreichen von Resourcengrenzen signalisiert er mit SIGXCPU SIGXFSZ Probleme mit einer Pipe signalisiert SIGPIPE Subsysteme In Subsystemen wie Netzwerk oder grafischer Bedienoberflache entstehen Signale wie SIGURG besondere urgent Bedingung an einer Netzwerkverbindung oder SIGWINCH Grosse eines Fensters geandert Software Soweit der Hersteller das vorsieht kann Software Signale an andere Prozesse senden und diese konnen auf das Signal reagieren Ein Beispiel ist das erneute Auswerten der Konfiguration Dafur gibt es kein einheitliches Signal meist wird SIGHUP SIGUSR1 oder SIGUSR2 verwendet Das Beispiel SIGHUP zeigt dass Signale bzw Signalnummern unterschiedlich verwendet werden konnen Wenn ein Signal normalerweise von einem Gerat erzeugt wird und sicher ist dass kein Gerat benutzt wird kann das Signal zu einem anderen Zweck genutzt werden Literatur BearbeitenJurgen Gulbins UNIX Springer Verlag Berlin Heidelberg New York 3 Auflage 1988 ISBN 3 540 19248 4 Seite 106 Kommandos Programme Prozesse Seite 575 Systemanschlusse und C Bibliotheksfunktionen W Richard Stevens Programmieren von UNIX Netzen Aus dem Englischen von Michael Fuese Werner Maisch Eberhard Trautwein Carl Hanser Verlag Munchen Wien 1992 ISBN 3 446 16318 2 Kapitel 2 4 Signale Seite 54 Englische Originalausgabe von Prentince Hall ISBN 0 13 928748 5 Siehe auch BearbeitenDas Unix Kommando kill kann verwendet werden um beliebige Signale unter Unix zu senden Weblinks BearbeitenAuflistung und Beschreibung gangiger Signale englisch Handbuchseite des Betriebssystems Linux Datei signum h der GNU C BibliothekEinzelnachweise Bearbeiten https tldp org LDP Linux Filesystem Hierarchy html signals html https manpages ubuntu com manpages kinetic man2 waitpid 2 html https manpages org signal 2 https docs python org 3 library signal html https linux die net man 3 sigvec https manpages ubuntu com manpages trusty man2 sigaction 2 htmlUnix Befehle der GNU Core UtilitiesDateien chgrp chown chmod cp dd df dir dircolors install ln ls mkdir mkfifo mknod mv rm rmdir shred sync touch vdirText awk cat cksum comm csplit cut expand fmt fold head join md5sum nl od paste ptx pr sha1sum sed sort split sum tac tail tr tsort unexpand uniq wcShell basename chroot date dirname du echo env expr factor false groups hostid id link logname nice nohup pathchk pinky printenv printf pwd readlink seq sleep stat stty tee test true tty uname unlink users who whoami yes Abgerufen von https de wikipedia org w index php title Signal Unix amp oldid 235330700