So überprüfen Sie, ob die Kernel-Panic-Einstellung in Linux aktiv ist

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie prüfen können, ob die Einstellung für einen Kernel-Panic (Kernel-Panic-Einstellung) in Linux aktiv ist. Das Lab führt Sie durch die Verwendung des Befehls sysctl, um die kernel.panic-Einstellung zu überprüfen und vorübergehend zu ändern. Diese Einstellung bestimmt das Verhalten des Systems nach einem kritischen Fehler.

Sie werden auch untersuchen, wie Sie die sysctl-Konfiguration überprüfen können, indem Sie die Datei /etc/sysctl.conf untersuchen und die Kernel-Parameter im Verzeichnis /proc/sys/kernel anzeigen, um zu verstehen, wie diese Einstellungen das Systemverhalten beeinflussen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/InputandOutputRedirectionGroup(["Input and Output Redirection"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/InputandOutputRedirectionGroup -.-> linux/tee("Output Multiplexing") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") subgraph Lab Skills linux/echo -.-> lab-558866{{"So überprüfen Sie, ob die Kernel-Panic-Einstellung in Linux aktiv ist"}} linux/ls -.-> lab-558866{{"So überprüfen Sie, ob die Kernel-Panic-Einstellung in Linux aktiv ist"}} linux/cat -.-> lab-558866{{"So überprüfen Sie, ob die Kernel-Panic-Einstellung in Linux aktiv ist"}} linux/tee -.-> lab-558866{{"So überprüfen Sie, ob die Kernel-Panic-Einstellung in Linux aktiv ist"}} linux/service -.-> lab-558866{{"So überprüfen Sie, ob die Kernel-Panic-Einstellung in Linux aktiv ist"}} linux/sudo -.-> lab-558866{{"So überprüfen Sie, ob die Kernel-Panic-Einstellung in Linux aktiv ist"}} linux/env -.-> lab-558866{{"So überprüfen Sie, ob die Kernel-Panic-Einstellung in Linux aktiv ist"}} end

Überprüfen der Panic-Einstellung mit sysctl kernel.panic

In diesem Schritt werden wir untersuchen, wie Sie die Panic-Einstellung des Kernels (Kernel-Panic-Einstellung) mit dem Befehl sysctl überprüfen können. Die kernel.panic-Einstellung bestimmt, wie der Kernel bei einem Panikfall (Kernel-Panic) reagiert. Ein Kernel-Panic ist ein kritischer Fehler, von dem das System nicht wiederherstellen kann und der oft zu einem Systemabsturz oder Neustart führt.

Der Befehl sysctl ist ein leistungsstarkes Werkzeug zum Lesen und Ändern von Kernel-Parametern zur Laufzeit. Diese Parameter steuern verschiedene Aspekte des Systemverhaltens.

Um den aktuellen Wert der kernel.panic-Einstellung zu überprüfen, öffnen Sie Ihr Terminal und geben Sie den folgenden Befehl ein:

sysctl kernel.panic

Dieser Befehl zeigt den aktuellen Wert der kernel.panic-Einstellung an. Sie sollten eine Ausgabe ähnlich der folgenden sehen:

kernel.panic = 0

Der Wert 0 gibt an, dass das System nach einem Kernel-Panic nicht automatisch neu starten wird. Wenn der Wert größer als 0 ist, gibt er die Anzahl der Sekunden an, die der Kernel vor dem automatischen Neustart warten wird.

Jetzt versuchen wir, den Wert von kernel.panic zu ändern. Um ihn auf 10 Sekunden festzulegen, verwenden Sie den folgenden Befehl mit sudo:

sudo sysctl kernel.panic=10

Sie werden nach Ihrem Passwort gefragt. Nach der Eingabe wird der Befehl den Wert von kernel.panic auf 10 setzen.

Um zu überprüfen, ob die Änderung erfolgreich war, führen Sie den sysctl-Befehl erneut aus:

sysctl kernel.panic

Sie sollten jetzt sehen:

kernel.panic = 10

Dies bestätigt, dass die kernel.panic-Einstellung erfolgreich geändert wurde.

Es ist wichtig zu beachten, dass Änderungen, die mit sysctl vorgenommen werden, temporär sind und nach einem Neustart verloren gehen. Um die Änderungen dauerhaft zu machen, müssen Sie die Datei /etc/sysctl.conf ändern, was wir im nächsten Schritt behandeln werden.

Überprüfen der sysctl-Konfiguration mit cat /etc/sysctl.conf

Im vorherigen Schritt haben wir gelernt, wie wir die kernel.panic-Einstellung vorübergehend mit dem Befehl sysctl ändern können. Diese Änderungen sind jedoch nicht dauerhaft und gehen nach einem Neustart verloren. Um die Änderungen dauerhaft zu machen, müssen wir die Datei /etc/sysctl.conf ändern.

Die Datei /etc/sysctl.conf ist die Hauptkonfigurationsdatei für sysctl. Sie enthält eine Liste von Kernel-Parametern und deren gewünschten Werten. Beim Systemstart liest das System diese Datei und wendet die angegebenen Einstellungen an.

Um den Inhalt der Datei /etc/sysctl.conf anzuzeigen, öffnen Sie Ihr Terminal und verwenden Sie den cat-Befehl:

cat /etc/sysctl.conf

Dieser Befehl zeigt den Inhalt der Datei an. Sie sehen möglicherweise einige Kommentare (Zeilen, die mit # beginnen) und einige vorhandene Einstellungen.

## /etc/sysctl.conf - Configuration file for setting system variables
## See /etc/sysctl.d/ for additional system variables.
## See sysctl.conf (5) for more information.

Jetzt fügen wir unsere kernel.panic-Einstellung dieser Datei hinzu. Wir verwenden den echo-Befehl, um die Einstellung am Ende der Datei anzufügen.

echo "kernel.panic = 10" | sudo tee -a /etc/sysctl.conf

Hier ist eine Aufschlüsselung des Befehls:

  • echo "kernel.panic = 10": Dieser Teil erstellt den Text, den wir der Datei hinzufügen möchten.
  • |: Dies ist eine Pipe, die die Ausgabe des echo-Befehls nimmt und sie als Eingabe an den tee-Befehl sendet.
  • sudo tee -a /etc/sysctl.conf: Der tee-Befehl liest von der Standardeingabe und schreibt sowohl an die Standardausgabe als auch in eine oder mehrere Dateien.
    • sudo: Erlaubt uns, in eine Datei zu schreiben, die Administratorrechte erfordert.
    • -a: Fügt den Text am Ende der Datei an, anstatt sie zu überschreiben.
    • /etc/sysctl.conf: Die Datei, die wir ändern möchten.

Nachdem Sie diesen Befehl ausgeführt haben, überprüfen wir, ob die Einstellung der Datei hinzugefügt wurde. Verwenden Sie erneut den cat-Befehl:

cat /etc/sysctl.conf

Sie sollten jetzt die Zeile kernel.panic = 10 am Ende der Datei sehen.

## /etc/sysctl.conf - Configuration file for setting system variables
## See /etc/sysctl.d/ for additional system variables.
## See sysctl.conf (5) for more information.
kernel.panic = 10

Um die Änderungen anzuwenden, können Sie entweder das System neu starten oder den folgenden Befehl ausführen:

sudo sysctl -p

Dieser Befehl teilt sysctl mit, die Datei /etc/sysctl.conf zu lesen und die Einstellungen anzuwenden.

Jetzt wird die kernel.panic-Einstellung auch nach einem Neustart beibehalten.

Prüfen der Kernel-Parameter in /proc/sys/kernel

In diesem Schritt werden wir einen anderen Weg untersuchen, um Kernel-Parameter anzuzeigen: das Verzeichnis /proc/sys/kernel. Dieses Verzeichnis bietet eine virtuelle Dateisystem-Schnittstelle zu Kernel-Variablen. Jede Datei in diesem Verzeichnis repräsentiert einen Kernel-Parameter.

Das Verzeichnis /proc ist ein spezielles Verzeichnis in Linux, das Informationen über laufende Prozesse und den Kernel bereitstellt. Es handelt sich um ein virtuelles Dateisystem, was bedeutet, dass die Dateien und Verzeichnisse darin nicht tatsächlich auf der Festplatte existieren. Stattdessen werden sie vom Kernel dynamisch erstellt, wenn auf sie zugegriffen wird.

Um die Dateien im Verzeichnis /proc/sys/kernel aufzulisten, öffnen Sie Ihr Terminal und verwenden Sie den ls-Befehl:

ls /proc/sys/kernel

Dieser Befehl zeigt eine Liste von Dateien an, wobei jede Datei einen Kernel-Parameter repräsentiert. Sie werden Dateien wie hostname, domainname, osrelease, version und viele andere sehen.

acpi_video_flags  ctrl-alt-del  dmesg               hostname       modules_disabled  osrelease  powersave-nap  pty  random  realtime-max-usleep  shmmax  shmall  shmmni  sysrq  tainted  threads-max  unknown_nmi_panic  version  yama

Um den Wert eines bestimmten Kernel-Parameters anzuzeigen, können Sie den cat-Befehl auf die entsprechende Datei anwenden. Beispielsweise können Sie den folgenden Befehl verwenden, um den Hostnamen des Systems anzuzeigen:

cat /proc/sys/kernel/hostname

Dadurch wird der aktuelle Hostname des Systems angezeigt.

labex

In ähnlicher Weise können Sie den folgenden Befehl verwenden, um die Kernel-Version anzuzeigen:

cat /proc/sys/kernel/osrelease

Dadurch wird die Kernel-Version angezeigt.

5.15.0-76-generic

Sie können auch den sysctl-Befehl verwenden, um diese Parameter anzuzeigen, wie wir im ersten Schritt gesehen haben. Beispielsweise ist der folgende Befehl äquivalent zu cat /proc/sys/kernel/hostname:

sysctl kernel.hostname

Das Verzeichnis /proc/sys/kernel bietet eine Fülle von Informationen über die Konfiguration und den Zustand des Kernels. Es ist eine wertvolle Ressource für Systemadministratoren und Entwickler, die das Verhalten des Systems verstehen und überwachen müssen.

Es ist wichtig zu beachten, dass Sie zwar diese Dateien anzeigen können, aber normalerweise Root-Rechte benötigen, um sie direkt zu ändern. Die Verwendung von sysctl ist jedoch die bevorzugte Methode zur Änderung von Kernel-Parametern, da sie eine besser kontrollierte und konsistente Schnittstelle bietet.

Zusammenfassung

In diesem Lab haben wir untersucht, wie man die kernel.panic-Einstellung in Linux mithilfe des sysctl-Befehls überprüft und vorübergehend ändert. Wir haben gelernt, dass kernel.panic das Verhalten des Kernels bei Auftreten eines kritischen Fehlers bestimmt. Ein Wert von 0 bedeutet, dass kein automatischer Neustart erfolgt, während ein Wert größer als 0 die Verzögerung in Sekunden vor dem Neustart angibt.

Wir haben sysctl kernel.panic verwendet, um die aktuelle Einstellung anzuzeigen, und sudo sysctl kernel.panic=10, um sie vorübergehend zu ändern. Das Lab hat auch darauf hingewiesen, dass Änderungen, die mit sysctl vorgenommen werden, nach einem Neustart nicht beibehalten werden und dass für eine dauerhafte Konfiguration die Datei /etc/sysctl.conf geändert werden muss. Dies wird in den folgenden Schritten behandelt.