Linux-Signale: Liste mit Nummern und Bedeutung
Linux-Signale von SIGHUP bis SIGSYS mit Nummer, Standardaktion und Beispiel. Geben Sie einen Namen, eine Nummer oder einen Exit-Status wie 137 ein und kopieren Sie den passenden kill-Befehl.
57 Einträge
Beenden und Abbrechen
SIGHUPNr. 1, Standard: beenden. Terminal oder Verbindung wurde getrennt. Viele Daemons wie nginx oder sshd lesen damit ihre Konfiguration neu ein.Senden: kill -HUP <PID>SIGINTNr. 2, Standard: beenden. Unterbrechung von der Tastatur, ausgelöst durch Strg+C.Senden: kill -INT <PID>SIGQUITNr. 3, Standard: beenden mit Core-Dump. Ausgelöst durch Strg+\; Java-Programme geben damit stattdessen einen Thread-Dump aus.Senden: kill -QUIT <PID>SIGKILLNr. 9, Standard: beenden. Der Kernel beendet den Prozess sofort. Kann weder abgefangen noch blockiert noch ignoriert werden, Aufräumcode läuft nicht. Nur als letztes Mittel.Senden: kill -9 <PID>SIGUSR1Nr. 10, Standard: beenden. Frei für eigene Zwecke. GNU dd gibt damit zum Beispiel den bisherigen Fortschritt aus.Senden: kill -USR1 <PID>SIGUSR2Nr. 12, Standard: beenden. Zweites frei verwendbares Signal für eigene Zwecke.Senden: kill -USR2 <PID>SIGPIPENr. 13, Standard: beenden. Schreiben in eine Pipe oder einen Socket, dessen Leser schon geschlossen ist, etwa bei befehl | head.Senden: kill -PIPE <PID>SIGALRMNr. 14, Standard: beenden. Ein mit alarm() gesetzter Timer ist abgelaufen.Senden: kill -ALRM <PID>SIGTERMNr. 15, Standard: beenden. Höfliche Aufforderung zum Beenden; das Programm kann aufräumen. Standard bei kill, systemctl stop, docker stop und Kubernetes.Senden: kill -TERM <PID>SIGSTKFLTNr. 16, Standard: beenden. Stack-Fehler eines Koprozessors; unter Linux praktisch unbenutzt.Senden: kill -STKFLT <PID>SIGPWRNr. 30, Standard: beenden. Meldung über Stromausfall, etwa von einer USV-Software.Senden: kill -PWR <PID>Programmfehler (Core-Dump)
SIGILLNr. 4, Standard: beenden mit Core-Dump. Ungültige Maschinenanweisung, etwa Programm für eine neuere CPU-Generation gebaut.Senden: kill -ILL <PID>SIGTRAPNr. 5, Standard: beenden mit Core-Dump. Haltepunkt oder Trace-Trap, von Debuggern wie gdb genutzt.Senden: kill -TRAP <PID>SIGABRTNr. 6, Standard: beenden mit Core-Dump. Das Programm hat abort() aufgerufen, zum Beispiel nach einer fehlgeschlagenen assert-Prüfung. SIGIOT ist derselbe Wert.Senden: kill -ABRT <PID>SIGBUSNr. 7, Standard: beenden mit Core-Dump. Busfehler, etwa Zugriff auf eine per mmap eingeblendete Datei, die inzwischen gekürzt wurde.Senden: kill -BUS <PID>SIGFPENr. 8, Standard: beenden mit Core-Dump. Arithmetischer Fehler, zum Beispiel ganzzahlige Division durch null.Senden: kill -FPE <PID>SIGSEGVNr. 11, Standard: beenden mit Core-Dump. Speicherzugriffsfehler („Segmentation fault“): Zugriff auf nicht erlaubten Speicher.Senden: kill -SEGV <PID>SIGXCPUNr. 24, Standard: beenden mit Core-Dump. Die erlaubte CPU-Zeit (ulimit -t) ist überschritten.Senden: kill -XCPU <PID>SIGXFSZNr. 25, Standard: beenden mit Core-Dump. Die erlaubte Dateigröße (ulimit -f) ist überschritten.Senden: kill -XFSZ <PID>SIGSYSNr. 31, Standard: beenden mit Core-Dump. Ungültiger Systemaufruf, zum Beispiel von einem seccomp-Filter blockiert.Senden: kill -SYS <PID>Job-Steuerung
SIGCHLDNr. 17, Standard: ignorieren. Ein Kindprozess wurde beendet, angehalten oder fortgesetzt.Senden: kill -CHLD <PID>SIGCONTNr. 18, Standard: fortsetzen. Setzt einen angehaltenen Prozess fort, wie fg oder bg in der Shell.Senden: kill -CONT <PID>SIGSTOPNr. 19, Standard: anhalten. Hält den Prozess an; kann wie SIGKILL nicht abgefangen oder ignoriert werden.Senden: kill -STOP <PID>SIGTSTPNr. 20, Standard: anhalten. Anhalten vom Terminal mit Strg+Z; anders als SIGSTOP abfangbar.Senden: kill -TSTP <PID>SIGTTINNr. 21, Standard: anhalten. Ein Hintergrundprozess wollte vom Terminal lesen.Senden: kill -TTIN <PID>SIGTTOUNr. 22, Standard: anhalten. Ein Hintergrundprozess wollte auf das Terminal schreiben oder dessen Einstellungen ändern.Senden: kill -TTOU <PID>Ein-/Ausgabe, Timer, Echtzeit
SIGURGNr. 23, Standard: ignorieren. Dringende Daten (Out-of-Band) auf einem Socket.Senden: kill -URG <PID>SIGVTALRMNr. 26, Standard: beenden. Virtueller Timer, zählt nur CPU-Zeit im Benutzermodus.Senden: kill -VTALRM <PID>SIGPROFNr. 27, Standard: beenden. Profiling-Timer, von Profilern genutzt.Senden: kill -PROF <PID>SIGWINCHNr. 28, Standard: ignorieren. Die Fenstergröße des Terminals hat sich geändert; Programme wie vim oder less zeichnen neu.Senden: kill -WINCH <PID>SIGIONr. 29, Standard: beenden. Ein-/Ausgabe ist jetzt möglich. SIGPOLL ist derselbe Wert.Senden: kill -IO <PID>SIGRTMIN … SIGRTMAXNr. 34 bis 64, Standard: beenden. Echtzeitsignale: werden in Warteschlangen gestellt und nicht zusammengefasst. Die glibc nutzt 32 und 33 intern, deshalb zeigt die Shell SIGRTMIN als 34.Senden: kill -lBefehle und Tastenkürzel
kill -lAlle Signalnamen mit Nummern auflistenkill -l 137In der Bash: Signalnamen zu einem Exit-Status ausgeben, hier KILLkill 1234Schickt SIGTERM an den Prozess mit der PID 1234kill -s TERM 1234Signal ausdrücklich per Name senden, gleichwertig zu kill -TERM 1234kill -9 1234SIGKILL: sofort beenden, wenn SIGTERM nicht wirktkill -0 1234Sendet nichts, prüft nur, ob der Prozess existiert und Sie ihm Signale schicken dürfenkill -HUP $(cat /run/nginx.pid)Konfiguration eines Daemons über seine PID-Datei neu ladenpkill -TERM -f "python app.py"Alle Prozesse beenden, deren Befehlszeile den Text enthältkillall -HUP nginxSignal an alle Prozesse mit diesem Namen (Linux, Paket psmisc)trap 'rm -f "$tmp"' EXITBeim Ende des Skripts aufräumen, egal ob normal oder nach Fehlertrap 'echo abgebrochen; exit 130' INT TERMEigene Behandlung für Strg+C und SIGTERM im Skripttrap '' HUPSignal im Skript ignorierentrap - INTStandardverhalten für ein Signal wiederherstellentimeout 10 befehlSchickt nach 10 Sekunden SIGTERM; Exit-Code dann 124timeout -k 5 10 befehlNach 10 Sekunden SIGTERM, 5 Sekunden später SIGKILL, falls der Prozess noch läuftnohup befehl &Befehl im Hintergrund starten, der SIGHUP beim Abmelden ignoriertStrg+CSchickt SIGINT an den VordergrundprozessStrg+ZSchickt SIGTSTP, der Prozess wird angehalten; weiter mit fg oder bgStrg+\Schickt SIGQUIT, beendet meist mit Core-Dumpsystemctl kill -s HUP nginx.serviceSignal an alle Prozesse eines systemd-Dienstessystemctl reload nginxNeu laden über die im Dienst hinterlegte Methode, oft per SIGHUPdocker stop -t 30 webSchickt SIGTERM und nach 30 Sekunden SIGKILL (Standard sind 10 Sekunden)docker kill --signal=HUP webBeliebiges Signal an den Hauptprozess eines Containersgrep Sig /proc/1234/statusZeigt als Bitmasken, welche Signale der Prozess blockiert (SigBlk), ignoriert (SigIgn) und abfängt (SigCgt)strace -e trace=signal -p 1234Mitschneiden, welche Signale ein laufender Prozess empfängtKein Eintrag gefunden. Versuchen Sie einen anderen Begriff oder wählen Sie „Alle Gruppen“.
Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.
Linux-Signale verstehen
Diese Liste der Linux-Signale enthält alle 31 Standardsignale mit ihren Signalnummern, der Standardaktion und einer Erklärung, dazu die Echtzeitsignale und 25 Befehle rund um kill, trap und timeout. Oben können Sie einen Namen, eine Nummer oder einen Exit-Status eingeben: Aus 137 wird so SIGKILL, aus 143 SIGTERM.
Ein Signal ist eine kurze Nachricht des Kernels oder eines anderen Prozesses an ein Programm. Die meisten Signale kann ein Programm abfangen und darauf reagieren, etwa beim Empfang von SIGTERM Verbindungen schließen und Daten speichern. SIGKILL und SIGSTOP sind die Ausnahme: Sie wirken immer, deshalb ist kill -9 verlässlich, aber grob. Gute Praxis ist erst SIGTERM, dann einige Sekunden warten und nur im Notfall SIGKILL. So machen es auch docker stop und Kubernetes.
In Shell-Skripten fangen Sie Signale mit trap ab, zum Beispiel um temporäre Dateien zu löschen. Wird ein Prozess durch ein Signal beendet, meldet die Shell den Exit-Status 128 plus Signalnummer. Die Nummern gelten für Linux auf x86 und ARM; macOS, BSD sowie Linux auf MIPS oder SPARC weichen teilweise ab. Was die übrigen Rückgabewerte bedeuten, steht bei den Exit-Codes.
Anleitung: Linux-Signale in 4 Schritten
- Geben Sie im Feld „Signal oder Nummer“ einen Namen wie
TERM, eine Nummer wie9oder einen Exit-Status wie137ein. - Lesen Sie im Ergebnis Nummer, Standardaktion und den passenden
kill-Befehl ab. - Filtern Sie die Liste darunter über „Suchen“ oder „Gruppe“, zum Beispiel nach „Job-Steuerung“.
- Kopieren Sie Signalname oder Befehl mit „Kopieren“ in Ihr Terminal oder Skript.
Typische Anwendungsfälle
- Einen Container oder Dienst sauber beenden und wissen, ob
SIGTERModerSIGKILLgeschickt wird. - Exit-Status 137 oder 143 in CI- oder Kubernetes-Logs einem Signal zuordnen.
- Ein Shell-Skript mit
trapso absichern, dass temporäre Dateien beim Abbruch gelöscht werden. - Einen Daemon per
SIGHUPseine Konfiguration neu laden lassen, ohne ihn neu zu starten.
Häufige Fragen
Was ist der Unterschied zwischen SIGTERM und SIGKILL?
SIGTERM (15) bittet das Programm, sich zu beenden; es kann aufräumen oder das Signal sogar ignorieren. SIGKILL (9) beendet den Prozess sofort durch den Kernel, ohne dass das Programm reagieren kann. Daten im Speicher gehen dabei verloren.
Warum bedeutet Exit-Code 137 SIGKILL?
Endet ein Prozess durch ein Signal, meldet die Shell 128 plus Signalnummer. 128 + 9 ergibt 137. Häufige Ursachen sind der OOM-Killer des Kernels bei Speichermangel, docker kill oder kill -9.
Welches Signal sendet Strg+C?
SIGINT (2). Strg+Z sendet SIGTSTP (20) und hält den Prozess an, Strg+\ sendet SIGQUIT (3).
Wie fange ich Signale in einem Bash-Skript ab?
Mit trap: trap 'aufraeumen' INT TERM ruft die Funktion bei SIGINT und SIGTERM auf. Das Pseudo-Signal EXIT greift bei jedem Ende des Skripts. SIGKILL lässt sich nicht abfangen.
Kann ein Prozess SIGKILL ignorieren?
Nein. SIGKILL und SIGSTOP können weder abgefangen noch blockiert noch ignoriert werden. Ein Prozess im Zustand D (nicht unterbrechbarer Schlaf, etwa beim Warten auf ein hängendes Laufwerk) stirbt aber erst, wenn der Kernel-Aufruf zurückkehrt.
Warum zeigt kill -l bei mir andere Nummern?
Die Nummern sind nicht auf allen Systemen gleich. Diese Liste gilt für Linux auf x86 und ARM. macOS und BSD nutzen für SIGUSR1, SIGBUS oder SIGCHLD andere Werte, MIPS und SPARC unter Linux ebenfalls. Signalnamen sind deshalb in Skripten die sicherere Wahl.
Das könnte auch helfen
HTTP-Statuscodes
Alle gängigen HTTP-Statuscodes von 100 bis 511 mit Bedeutung, typischer Ursache und Suche.
ÖffnenHTTP-Header-Referenz
Wichtige Anfrage- und Antwort-Header mit Bedeutung und Beispiel, durchsuchbar.
ÖffnenMIME-Typen
Über 150 MIME-Typen nachschlagen: Dateiendung zu Content-Type und umgekehrt.
ÖffnenGit-Befehle
Git-Spickzettel: die wichtigsten Befehle nach Aufgaben gruppiert, durchsuchbar und kopierbar.
ÖffnenBash-Befehle
Bash- und Linux-Befehle für Dateien, Text, Prozesse und Netzwerk, mit Suche und Kopieren.
ÖffnenPort-Liste
Bekannte TCP- und UDP-Ports von 20 bis 51820 mit Dienst und Hinweis, durchsuchbar.
Öffnen