GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Eingefrorenes Linux-System? Hier sind 3 Möglichkeiten, damit umzugehen

Linux ist bekanntermaßen sehr stabil, aber selbst das stabilste System kann Situationen begegnen, die dazu führen, dass es nicht mehr reagiert. Dann kommt das schreckliche Gefühl, wenn Sie „Power“ drücken und halten. Es gibt ein paar Tricks mit Linux, die man in einem solchen Fall ausprobieren kann. An diesem Punkt versuchen wir nicht, ungespeicherte Arbeit zu speichern. Wir möchten einen Weg finden, einen Neustart zu vermeiden oder zumindest einen möglichst sauberen Neustart zu ermöglichen, um Beschädigungen zu vermeiden.

Für die Zwecke dieses Artikels kann Linux als ein Satz von 2 Stacks betrachtet werden:Der Kernel Stack und der User Stack. Irgendwo im User Stack laufen Programme. Höchstwahrscheinlich X-Server, ein Fenstermanager und einige Programme. Sie können sich diese Liste von Programmen, einschließlich des X-Servers, als einen weiteren Stapel innerhalb des Benutzerstapels vorstellen. Dieses Konzept wird neueren Linux-Benutzern helfen, einige der Aufgaben zu verstehen, die wir später ausführen werden.

1. Beenden Sie ein nicht reagierendes Programm mit xkill

Wenn Sie einen Linux-Desktop verwenden, sollte Ihr erster Schritt ein Versuch sein, die Funktion zum Ausführen des Fenstermanagers (Alt + F2 in Ubuntu) zu verwenden. Wenn Sie Glück haben, erscheint es früher oder später.

Dann können Sie xkill ausführen und zeigen Sie mit dem Cursor auf das nicht mehr funktionierende Fenster und klicken Sie es weg.

Xkill funktioniert schneller als das herkömmliche X-Symbol oder das Klicken mit der rechten Maustaste auf das Fenster in der Taskleiste und das Klicken auf „Schließen“. Xkill tötet sofort, ohne dass Fragen gestellt werden.

2. Beleben Sie ein eingefrorenes Linux-System mit virtuellen Konsolen (TTY)

Manchmal haben Sie nicht so viel Glück, das System scheint völlig tot zu sein.

Das kann nur eine Illusion sein. Erinnern Sie sich an den Programmstapel im Benutzerstapel? Lassen Sie uns ein wenig mit diesem Bild arbeiten.

Auch wenn es den Anschein haben mag, dass der Stamm des Benutzer-Stacks X wäre. Das ist es nicht.

X Window System wird auf einer virtuellen Konsole ausgeführt (VC ), auch als TTY bezeichnet. Sie werden im Dateisystem als /dev/ttyX dargestellt. Linux stellt Ihnen mehrere VCs zur Verfügung. Der Versuch, auf einen anderen zuzugreifen, kann Ihnen die Kontrolle zurückgeben.

Sie können einen anderen VC anfordern, indem Sie STRG+ALT+F{1,6} drücken aus einer GUI-Umgebung oder ALT+F{1,6} von einem anderen VC. Der obige Tastendruck gibt Ihnen Zugriff auf VC 1 bis 6. Die grafische Benutzeroberfläche läuft auf VC 7+.

Bei einem instabilen System kann sogar das Anfordern eines VC-Wechsels einige Zeit in Anspruch nehmen, seien Sie also etwas geduldig.

Wenn Ihr Versuch, die virtuelle Konsole zu ändern, erfolgreich ist, werden Sie aufgefordert, Ihren Benutzer und Ihr Kennwort einzugeben. Sie haben dann eine Textmodus-Konsole. Ihr System sollte hier etwas Stabilität zurückgewinnen, dies liegt teilweise daran, dass die virtuelle Konsole, auf der X und alles andere läuft, keine Priorität mehr hat.

Sobald Sie eingeloggt sind, haben Sie einige Optionen.

  • Sie können versuchen, ein nicht mehr funktionierendes Programm mit kill zu beenden oder killall Befehl.
  • Sie können den Fenstermanager, den X-Server oder den Anmeldemanager beenden. Dadurch werden alle untergeordneten Prozesse beendet, und wenn alles gut geht, startet Ihr Login-Manager neu und präsentiert Ihnen Ihren grafischen Login-Bildschirm.

3. Wenn alles andere fehlschlägt, sprechen Sie mit dem Kernel unter Verwendung von SysReq

Manchmal funktioniert sogar das Umschalten auf ein TTY nicht. Das ganze System ist tot. Geben Sie noch nicht auf, noch einmal, höchstwahrscheinlich eine Illusion. Linux hält für Situationen wie diese eine weitere Funktion bereit.

Wenn es im Kernel kompiliert und in einer Datei aktiviert wird, bietet Linux Ihnen die Möglichkeit, voreingestellte Anfragen direkt an den Kernel zu senden. Dies ist in einer Situation nützlich, in der der gesamte Benutzerstapel tot ist. Er ist als Magic SysRq-Schlüssel bekannt . In den meisten Distributionen standardmäßig kompiliert und aktiviert, sollte nur eine Kernel Panic in der Lage sein, dies zu verhindern.

Um zu bestätigen, dass die Option beim Kompilieren des Kernels festgelegt wurde, können Sie versuchen, die Konfigurationsdatei Ihres aktuellen Kernels in /boot zu finden. Suchen Sie nach der Option CONFIG_MAGIC_SYSRQ. Wie bereits erwähnt, ist es in den meisten Distributionen kompiliert und aktiviert. Um zu bestätigen, dass es aktiviert ist, führen Sie Folgendes aus:

sysctl kernel.sysrq

Auf älteren Systemen hatten Sie 2 Optionen:0 &1. Es war entweder AUS oder EIN. Bei neueren gibt es eine genauere Kontrolle darüber, welche Befehle aktiviert sind.

Jeder Wert über 1 bedeutet, dass einige Befehle aktiviert sind. Weitere Einzelheiten finden Sie hier.

Führen Sie den folgenden Befehl aus, um vorübergehend einen anderen Wert festzulegen:

sudo sysctl -w kernel.sysrq=value

Um diesen Wert dauerhaft zu ändern, bearbeiten Sie /etc/sysctl.conf . Suchen Sie nach kernel.sysrq und legen Sie den gewünschten Wert fest.

Der einfachste Weg, um zu sehen, ob es funktioniert, ist, es zu versuchen. Ich empfehle auch, eine Reihe von Tastenanschlägen zu testen und zu lernen, während das System stabil ist. Wenn Sie einen SysRq-Aufruf ausführen, versucht der Kernel zu antworten. Diese Antwort ist nur sichtbar, wenn Sie sich in einer virtuellen Konsole 1 bis 6 befinden. Wenn der Fokus nicht von X wegbewegt werden kann, sehen Sie die Antworten nicht. Das bedeutet nicht, dass es nicht funktioniert.

Es gibt zahlreiche Befehle, die gesendet werden können. Die vollständige Liste kann hier eingesehen werden. Ich empfehle, sich Folgendes zu merken:

Schlüssel Beschreibung
Alt + SysRq + r Bringt die Tastatur aus dem Raw-Modus und entzieht X die Kontrolle
Alt + SysRq + e SigTerm an alle Prozesse senden, um ihnen die Möglichkeit zu geben, ordnungsgemäß zu beenden
Alt + SysRq + i SigKill an alle Prozesse senden
Alt + SysRq + k Alle Prozesse in der aktuellen virtuellen Konsole beenden
Alt + SysRq + s Synchronisiere alle gemounteten Dateisysteme und spüle alle Daten auf die Festplatte
Alt + SysRq + u Alle Dateisysteme schreibgeschützt neu mounten
Alt + SysRq + b Starten Sie das System sofort neu, wird nicht synchronisiert oder unmountet
Alt + SysRq + o System herunterfahren

Diese kurze Liste von Befehlen gibt Ihnen ein mächtiges neues Werkzeug, wenn Sie mit einem instabilen System umgehen. Wenn Sie beim Senden einer Anfrage die Antworten des Kernels nicht sehen können, warten Sie zwischen den Befehlen einige Sekunden. Achten Sie auf die HDD-Leuchte, wenn Sie den HDD-Betrieb anfordern.

Es gibt 2 Sequenzen, an die man sich erinnern sollte.

Alt + SysRq + r e k

Diese Sequenz eignet sich gut, um einen nicht reagierenden X-Server neu zu starten. Mit Alt + SysRq + r holen Sie die Tastatur zunächst aus dem Raw-Modus . Sie fordern dann an, ein SIGTERM zu senden zu allen Prozessen mit Alt + SysRq + e . X-Server kann mit dieser Anforderung neu gestartet werden. Wenn ja, haben Sie Ihr System gerettet. Wenn nicht, fahren Sie mit der dritten Anfrage fort, Alt + SysRq + k . Dadurch wird SIGKILL gesendet zu allen Prozessen innerhalb der aktuellen virtuellen Konsole.

Wenn Ihr System nach der obigen Sequenz immer noch nicht reagiert, sollten Sie mit dieser nächsten Sequenz fortfahren.

Alt + SysRq + r e i s u b

Dieser letzte Befehl leitet einen Notfall-Neustart ein.

  • r :Tastatur aus Raw-Modus holen
  • e :SIGTERM an alle Prozesse senden
  • ich :SIGKILL an alle Prozesse senden
  • s :Alle gemounteten Dateisysteme synchronisieren
  • u :Notfall-Remount schreibgeschützt
  • b :System sofort neu starten

Sie sind jetzt mit dem besten Tool gegen ein nicht reagierendes System ausgestattet, das ich kenne. Sie können dieses Video von meinem YouTube-Kanal für eine Demonstration verfolgen.

Ich hoffe, Sie haben mit diesem Artikel etwas Neues über den Umgang mit einem eingefrorenen Linux-System gelernt. Ich würde gerne Ihr Feedback dazu wissen. Bitte verwenden Sie den Kommentarbereich und teilen Sie Ihre Gedanken mit.


Linux
  1. Überwachen Sie Ihr Linux-System in Ihrem Terminal mit procps-ng

  2. Befehl zum Herunterfahren von Linux (mit Beispielen)

  3. Linux – Sind verschiedene Linux/Unix-Kernel austauschbar?

  4. Schnellster Linux-Systemaufruf

  5. Warum unterscheiden sich Linux-Systemrufnummern in x86 und x86_64?

Pentest mit Linux-Sicherheitstools

10 Möglichkeiten für den Einstieg in Linux

Linux-Verfügbarkeitsbefehl mit Beispielen

Erste Schritte mit dem Linux-Betriebssystem

Ist Linux ein Betriebssystem oder ein Kernel?

5 Möglichkeiten, CPU-Informationen in Linux zu überprüfen