📟 Gängige UNIX-Signale – Eine Übersicht
Wenn in der UNIX-Welt Prozesse miteinander kommunizieren oder vom System kontrolliert werden, geschieht das oft über sogenannte Signale. Diese sind kurze Benachrichtigungen des Kernels an einen Prozess, dass ein bestimmtes Ereignis eingetreten ist. Die Signale tragen in der Regel das Präfix SIG und können mithilfe von Befehlen wie kill oder durch das System selbst ausgelöst werden.
Mit kill -l lassen sich alle verfügbaren Signale auflisten, die auf dem jeweiligen System unterstützt werden. Wichtig: Die numerischen Signalwerte können sich je nach Architektur und Betriebssystem unterscheiden. Der POSIX-Standard definiert dabei nur die Namen, nicht aber die exakten Nummern.
📊 Beispielhafte Signalübersicht
Die folgende Tabelle zeigt eine Auswahl gängiger UNIX-Signale samt Beschreibung und typischer Verwendung:
| Signalname | Nummer (x86/ARM) | Bedeutung (Kurzform) | Beschreibung | Standard |
|---|---|---|---|---|
SIGHUP | 1 | Hangup | Verbindung zum Terminal unterbrochen | POSIX |
SIGINT | 2 | Interrupt | Abbruch durch Tastenkombination (z.B. Ctrl+C) | POSIX |
SIGQUIT | 3 | Quit | Beenden durch Tastatur (z.B. Ctrl+) | POSIX |
SIGILL | 4 | Illegal Instruction | Ungültiger Maschinenbefehl | POSIX |
SIGABRT | 6 | Abort | Abbruchsignal von abort() | POSIX |
SIGFPE | 8 | Floating Point Error | Fehlerhafte arithmetische Operation | POSIX |
SIGKILL | 9 | Kill (nicht abfangbar) | Sofortiges Beenden eines Prozesses | POSIX |
SIGSEGV | 11 | Segfault | Ungültiger Speicherzugriff | POSIX |
SIGPIPE | 13 | Broken Pipe | Schreiben auf Pipe ohne Leser | POSIX |
SIGALRM | 14 | Alarm Timer | Zeitsignal von alarm() | POSIX |
SIGTERM | 15 | Terminate | Standard-Signal zur Beendigung | POSIX |
SIGUSR1 | 10 | User-defined Signal 1 | Benutzerdefiniertes Signal | POSIX |
SIGUSR2 | 12 | User-defined Signal 2 | Benutzerdefiniertes Signal | POSIX |
SIGCHLD | 17 | Child Changed | Kindprozess beendet/geändert | POSIX |
SIGSTOP | 19 | Stop (nicht abfangbar) | Prozess anhalten | POSIX |
SIGCONT | 18 | Continue | Angehaltenen Prozess fortsetzen | POSIX |
SIGTSTP | 20 | Terminal Stop | Stop durch Tastatur (z.B. Ctrl+Z) | POSIX |
🛠️ Praktischer Hinweis
Wenn du mit Signalen arbeitest, solltest du immer überprüfen, welche Signale auf deinem System verfügbar sind. Verwende dazu:
kill -lBeachte außerdem: Einige Signale wie SIGKILL oder SIGSTOP können nicht abgefangen oder ignoriert werden.
🌐 Weiterführende Ressourcen
UNIXLinuxSignaleProzessmanagementSIGKILLSystemprogrammierung