Linux-Signale umfassen: 1. SIGHUP, wird verwendet, um den Prozess sofort herunterzufahren, dann die Konfigurationsdatei erneut zu lesen und dann neu zu starten; 3. SIGQUIT, das 4. SIGFPE, wird ausgegeben, wenn ein schwerwiegender Rechenoperationsfehler auftritt; 5. SIGKILL, wird verwendet, um die Ausführung des Programms sofort zu beenden; 7. SIGTERM, Signal, um den Prozess normal zu beenden; 8. SIGCONT; 9. SIGSTOP usw. .
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.
Was sind Signale unter Linux?
Die Verwaltung von Prozessen bezieht sich hauptsächlich auf das Schließen und Neustarten von Prozessen. Wenn wir im Allgemeinen eine Software schließen oder neu starten, schließen oder starten wir ihr Programm neu, anstatt den Prozess direkt auszuführen. Um beispielsweise den Apache-Dienst neu zu starten, verwenden Sie im Allgemeinen den Befehl „service httpd restart“, um das Apache-Programm neu zu starten.
Kann Apache also heruntergefahren oder neu gestartet werden, indem der Prozess direkt verwaltet wird? Die Antwort ist ja, dann muss man sich auf das Signal des Prozesses (Signal) verlassen. Wir müssen dem Prozess eine Nummer geben und ihm mitteilen, was er tun soll.
Signale sind im Linux-Betriebssystem sehr wichtig. Signale können über die Tastatur, durch Softwarebedingungen oder durch den Aufruf von Hardwareausnahmen generiert werden. In Linux gibt es insgesamt 64 Signale, die aus Systemfunktionsaufrufen generiert werden. Linux-Benutzer können sie wie folgt über kill -l anzeigen: Die ersten 32 Typen werden als unzuverlässige Signale bezeichnet. Sie werden im Allgemeinen verwendet, nachdem die Software keine Warteschlangen unterstützt Die 32 Typen werden als zuverlässige Signale bezeichnet und werden typischerweise zur Unterstützung von Warteschlangen in der Hardware verwendet.
Allgemeine Signale in Linux
Signalcode
Signalname |
Beschreibung |
|
1
SIGHUP |
Dieses Signal führt dazu, dass der Prozess sofort beendet wird Konfiguration nach Datei-Neustart |
|
2
SIGINT |
Programmabbruchsignal, wird verwendet, um den Vordergrundprozess zu beenden. Entspricht der Ausgabe-Tastenkombination Strg+C |
|
3
SIGQUIT |
Programmbeendigungssignal (wie Strg + ) |
|
8
SIGFPE |
Wird ausgegeben, wenn ein schwerwiegender Rechenoperationsfehler auftritt. Es umfasst nicht nur Gleitkommaoperationsfehler, sondern auch alle anderen arithmetischen Operationsfehler wie Überlauf und Division durch 0. |
|
9
SIGKILL |
wird verwendet, um das Programm sofort zu beenden. Dieses Signal kann nicht blockiert, verarbeitet oder ignoriert werden. Wird im Allgemeinen verwendet, um den Prozess zwangsweise zu beenden. |
|
14
SIGALRM |
Uhrzeitsignal, das die tatsächliche Zeit oder Uhrzeit berechnet. Die Alarmfunktion verwendet dieses Signal |
|
15
SIGTERM |
, um den Prozess normal zu beenden, und ist das Standardsignal des Kill-Befehls. Wenn im Prozess ein Problem aufgetreten ist, kann dieses Signal den Prozess nicht normal beenden. Erst dann versuchen wir es mit dem Signal 9 |
|
18
SIGCONT |
. Dieses Signal kann die Ausführung des ausgesetzten Vorgangs fortsetzen Verfahren. Dieses Signal kann nicht blockiert werden |
|
19
SIGSTOP |
Dieses Signal kann den Vordergrundprozess anhalten, was der Eingabe der Tastenkombination Strg+Z entspricht. Dieses Signal kann nicht blockiert werden |
|
KILL- und STOP-Signale können nicht blockiert, ignoriert oder erfasst werden.
Term bedeutet, den Prozess zu beenden. Kern bedeutet, den Prozess zu beenden und den Kern zu sichern. Stop unterbricht den Thread, Cont setzt den angehaltenen Thread fort.
Häufige Verwendung gemeinsamer Signale
-
SIGHUP
Dieses Signal wird ausgegeben, wenn die Benutzerterminalverbindung (normal oder abnormal) endet, normalerweise wenn der Steuerungsprozess des Terminals endet, um verschiedene Jobs in derselben Sitzung zu benachrichtigen Zu diesem Zeitpunkt sind sie nicht mehr mit dem Steuerterminal verbunden.
Beim Anmelden bei Linux weist das System dem angemeldeten Benutzer eine Terminalsitzung zu. Alle in diesem Terminal ausgeführten Programme, einschließlich der Vordergrundprozessgruppe und der Hintergrundprozessgruppe, gehören im Allgemeinen zu dieser Sitzung. Wenn sich der Benutzer von Linux abmeldet, empfangen die Vordergrundprozessgruppe und der Hintergrundprozess, der an das Terminal ausgibt, das SIGHUP-Signal.
Die Standardoperation dieses Signals besteht darin, den Prozess zu beenden. Nach dem Abmelden werden also die vorderen und hinteren Prozesse sowie die Prozesse mit Terminalausgabe im Hintergrund beendet.
Aber Sie können dieses Signal erfassen. Beispielsweise kann wget das SIGHUP-Signal erfassen und ignorieren. Auf diese Weise kann wget den Download fortsetzen, auch wenn Sie sich von Linux abmelden.
Darüber hinaus wird dieses Signal für Daemons verwendet, die vom Terminal getrennt sind, um es zu benachrichtigen, die Konfigurationsdatei erneut zu lesen.
Zum Beispiel kann das Senden eines HUP-Signals an den Nginx-Prozess die Konfiguration aktualisieren.
SIGINT: Programmbeendigungssignal (Interrupt), das ausgegeben wird, wenn der Benutzer das INTR-Zeichen (normalerweise Strg-C) eingibt und dazu dient, die Vordergrundprozessgruppe zu benachrichtigen, den Prozess zu beenden.
SIGQUIT: Ähnlich wie SIGINT, aber gesteuert durch das QUIT-Zeichen (normalerweise Strg-). Der Prozess generiert beim Beenden aufgrund des Empfangs von SIGQUIT eine Kerndatei, die in diesem Sinne einem Programmfehlersignal ähnelt.
-
SIGTERM:
Programmendesignal (Beendigungssignal) Im Gegensatz zu SIGKILL kann dieses Signal blockiert und verarbeitet werden. Es wird normalerweise verwendet, um zu verlangen, dass das Programm normal beendet wird, damit der Prozess vor dem Beenden einige notwendige Aufräumarbeiten durchführen kann.
Der Shell-Befehl kill generiert dieses Signal standardmäßig. Wenn der Prozess nicht beendet werden kann, versuchen wir es mit SIGKILL.
SIGTERM ermöglicht ein ordnungsgemäßes Ende des Prozesses. Wenn der Prozess selbst nicht ordnungsgemäß endet, verwenden Sie SIGKILL, um ihn ordnungsgemäß zu beenden.
SIGCONT: Einen gestoppten Prozess weiter ausführen lassen. Dieses Signal kann nicht blockiert werden. Sie können einen Handler verwenden, um das Programm bestimmte Arbeiten abschließen zu lassen, um beispielsweise die Eingabeaufforderung erneut anzuzeigen.
SIGSTOP: Stoppt die Ausführung des Prozesses. Dies unterscheidet sich von Beenden und Unterbrechen: Der Prozess ist noch nicht beendet, aber die Ausführung kann nicht blockiert, verarbeitet oder ignoriert werden Die häufig verwendete Signal-Tastenkombination
Strg-C sendet das SIGINT-Signal an alle Prozesse in der Vordergrundprozessgruppe. Wird oft verwendet, um ein laufendes Programm zu beenden.
- ctrl-z sendet das SIGTSTP-Signal an alle Prozesse in der Vordergrundprozessgruppe, das häufig zum Anhalten eines Prozesses verwendet wird.
- Strg-D sendet kein Signal, sondern stellt einen speziellen Binärwert dar, der EOF anzeigt.
- Strg – Senden Sie das SIGQUIT-Signal an alle Prozesse in der Vordergrundprozessgruppe, beenden Sie den Vordergrundprozess und generieren Sie Kerndateien. 🔜 Boden verarbeiten
-
Strg-d
Eingabe beenden oder Shell verlassen
Strg-s
Ausgabe unterbrechen |
|
Strg- q
Ausgabe fortsetzen
Ctrl-c |
Kill foreground process |
Ctrl-z |
Suspend foreground process |
Ctrl-d |
Terminate input, or exit shell |
Ctrl-s |
Suspend output |
Ctrl-q |
Resume output |
Ctrl-o |
Discard output |
Ctrl-l |
Strg-o
| Ausgabe verwerfen
Strg-l
Bildschirm löschen
🎜🎜🎜 Verwandte Empfehlungen: „🎜Linux-Video-Tutorial🎜“🎜🎜
Das obige ist der detaillierte Inhalt vonWelche Signale hat Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn