Signal (Computer)
aus Wikipedia, der freien Enzyklopädie
Ein Signal ist eine Systemnachricht an einen laufenden Prozess. Signale sind die simpelste Form von Interprozesskommunikation. Ein laufender Prozess (etwa ein Texteditor) kann durch das Senden eines Signals vom System über Fehler benachrichtigt werden oder zu einem bestimmten Verhalten aufgefordert.
Unter UNIX-Systemen gibt es etwa das Signal SIGTERM (terminieren) welches einen Prozess auffordert sich selbst zu beenden. Dieses Signal wird beispielsweise an alle Prozesse gesendet, wenn der Computer heruntergefahren wird. Der Prozess weiß dann, dass er offene Filehandles oder Netzwerkverbindungen schließen muss.
Das System könnte einen Prozess auch darüber informieren, dass er eine unzulässige oder fehlerhafte Anfrage ans System gestellt hat.
Da die Anzahl dieser Signale stark limitiert (in einem gängigen Debian-Linux z.B. 64 bzw. 63) und sehr systemnah ist (also stark plattformabhängig) gibt es, insbesondere für grafische Desktop-Anwendungen, spezielle Prozess-Kommunikationsmodelle, wie etwa DCOP im KDE-Desktop. Es ist beispielsweise für einen auf der Konsole laufenden Texteditor unsinnig ein Signal zu schicken, das darüber informiert, dass die Größe seines Fensters geändert wurde, denn auf der Konsole gibt es keine Fenster. Für einen Mediaplayer wäre es aber von Vorteil Signale zu kennen wie etwa "Play", "Next", "Stop", "Pause", "Previous", "Volume Up" etc.
[Bearbeiten] Gängige UNIX-Signale
Die Signalnummern sind nicht frei definierbar, viele sind bereits vordefiniert:
Anmerkung: Die ganzzahligen Werte können sich auf den einzelnen Plattformen unterscheiden!
Signal | Wert | Bedeutung | Standard |
---|---|---|---|
SIGHUP | 1 | Hangup | POSIX |
SIGINT | 2 | Interrupt | ANSI |
SIGQUIT | 3 | Quit | POSIX |
SIGILL | 4 | Illegal instruction | ANSI |
SIGTRAP | 5 | Trace trap | POSIX |
SIGABRT | 6 | Abort | ANSI |
SIGIOT | 6 | IOT trap | 4.2 BSD |
SIGBUS | 7 | BUS error | 4.2 BSD |
SIGFPE | 8 | Floating-point exception | ANSI |
SIGKILL | 9 | Kill, unblockable | POSIX |
SIGUSR1 | 10 | User-defined signal 1 | POSIX |
SIGSEGV | 11 | Segmentation violation | ANSI |
SIGUSR2 | 12 | User-defined signal 2 | POSIX |
SIGPIPE | 13 | Broken pipe | POSIX |
SIGALRM | 14 | Alarm clock | POSIX |
SIGTERM | 15 | Termination | ANSI |
SIGSTKFLT | 16 | Stack fault | |
SIGCLD | 17 | Same as SIGCHLD | System V |
SIGCHLD | 17 | Child status has changed | POSIX |
SIGCONT | 18 | Continue | POSIX |
SIGSTOP | 19 | Stop, unblockable | POSIX |
SIGTSTP | 20 | Keyboard stop | POSIX |
SIGTTIN | 21 | Background read from tty | POSIX |
SIGTTOU | 22 | Background write to tty | POSIX |
SIGURG | 23 | Urgent condition on socket | 4.2 BSD |
SIGXCPU | 24 | CPU limit exceeded | 4.2 BSD |
SIGXFSZ | 25 | File size limit exceeded | 4.2 BSD |
SIGVTALRM | 26 | Virtual alarm clock | 4.2 BSD |
SIGPROF | 27 | Profiling alarm clock | 4.2 BSD |
SIGWINCH | 28 | Window size change | 4.3 BSD, Sun |
SIGPOLL | SIGIO Pollable event occurred | System V | |
SIGIO | 29 | I/O now possible | 4.2 BSD |
SIGPWR | 30 | Power failure restart | System V |
SIGSYS | 31 | Bad system call | |
SIGUNUSED | 31 |
(auch zu finden unter: /usr/include/bits/signum.h)
[Bearbeiten] Weblinks
- http://www.wlug.org.nz/Signal - Auflistung und Beschreibung gängiger Signale
Kategorien: Unix | Posix | Signal