Gibt es außer der Aktualisierung des Kernels Änderungen an einem Linux-System, die einen Neustart erfordern? Ich weiß, dass es Situationen gibt, in denen ein Neustart die Dinge einfacher macht, aber gibt es Situationen, die nur mit einem Neustart erreicht werden können?
Zur Verdeutlichung: Ich denke an ein typisches Desktop- oder Serversystem, bei dem keine Hardwarefehlfunktion vorliegt.
Antworten:
Ein paar Dinge fallen mir ein:
Erholen Sie sich von einer Kernel-Panik
Eine Kernel-Panik kann per Definition nicht behoben werden, ohne den Kernel neu zu starten.
Erholen Sie sich von Hängen, die Sie ohne Terminalzugriff verlassen
Wenn das System nicht reagiert und Sie nicht in der Lage sind, Befehle zur Wiederherstellung abzusetzen, können Sie möglicherweise nur einen Neustart durchführen. Normalerweise möchten Sie manuelles Aus- und Einschalten vermeiden. In solchen Situationen unterstützt der Linux-Kernel Magic SysRq , mit dessen Hilfe der Computer im Notfall neu gestartet werden kann.
Solange die
CONFIG_MAGIC_SYSRQ
Option in der Kernelkonfiguration aktiviert und diekernel.sysrq
sysctl
Option aktiviert ist, können Sie Befehle mit magischen SysRq-Tastenkombinationen direkt an den Kernel senden:Beachten Sie, dass Alt+ SysRqunten bedeutet, dass Sie gedrückt halten und Alt dann gedrückt halten SysRq (normalerweise die PrintScrnTaste).
SIGTERM
an alle Prozesse, mit der Ausnahmeinit
, ihnen eine Chance zu geben , sanft zu beendenSIGKILL
an alle Prozesse senden , außer dassinit
sie zum Beenden gezwungen werdenAlt+ SysRq+ b: Neustart oder
Alt+ SysRq+ o: Herunterfahren
Eine Mnemonik für die magischen SysRq-Tastenkombinationen, um einen ordnungsgemäßen Neustart zu versuchen, lautet:
" R eboot E ven I f S ystem U tterly B roke "
Für Headless-Server gibt es sogar ein iptables-Ziel, das Remote-SysRq-Sequenzen über ein Netzwerk ermöglicht.
Wiederherstellen aus dem nicht bootfähigen Zustand
Wenn das System bereits in einen Zustand versetzt wurde, in dem ein regulärer Start nicht möglich ist (z. B. aufgrund eines fehlgeschlagenen System-Upgrades, eines beschädigten Dateisystems usw.), besteht die einzige Möglichkeit, auf eine Wiederherstellungskonsole auf dem System zuzugreifen, möglicherweise in einem Neustart Verwenden geeigneter Startzeitoptionen.
Ändern Sie die Kernelparameter für die Startzeit
Einige Kernel-Parameter (z. B.
audit
zum Aktivieren / Deaktivieren der Kernel-Überwachung) können nur festgelegt werden, wenn der Kernel beim Booten geladen wird.quelle
Ich kann mir zwei Mal überlegen, wo ich einen Neustart durchführen möchte:
Wenn ich sicherstellen muss, dass das System im richtigen Zustand hochgefahren werden kann.
Ich habe einmal an einem System gearbeitet, auf dem ein Dämon konfiguriert war, während er lief. Nachdem es einige Jahre lief, führte ein Stromausfall zu einem Neustart, aber der Daemon war nicht Teil des Startvorgangs und niemand hatte eine Ahnung, wie es Jahre zuvor konfiguriert worden war. Das System war tagelang außer Betrieb, als wir herausfanden, wie wir es neu konfigurieren sollten.
Tatsächlich ist ein Neustart die einzige Möglichkeit, um sicherzustellen, dass Ihr System nach einem Stromausfall ordnungsgemäß neu gestartet wird.
Wenn eine Systembibliothek aktualisiert wurde.
Angenommen, in einer Bibliothek, die mit vielen Apps / Servern auf dem System gemeinsam genutzt wird, wurde eine schwerwiegende Sicherheitslücke entdeckt. Sie können die Bibliothek ohne Neustart aktualisieren, aber wie viele Prozesse werden noch ausgeführt, wenn die unsichere Bibliothek geladen ist? Sie können alles mit der alten Bibliothek mühsam neu starten (wenn Sie es herausfinden können), aber das ist fehleranfällig und kann länger dauern als nur ein Neustart.
Ein Neustart ist der beste Weg, um sicherzustellen, dass nicht noch alle laufenden Prozesse die alte, fehlerhafte Bibliothek verwenden.
quelle
lsof
bevor Sie die Bibliotheken aktualisieren.Wenn Sie geplante Änderungen in der Softwarekonfiguration meinen und davon ausgehen, dass die Hardware einwandfrei funktioniert (ich habe sie noch nicht gesehen) und die Software fehlerfrei ist (Sie wissen ...), dann würde Sie nur ein Fehler im Kernel oder ein Treiber dazu zwingen neustarten. :)
Davon abgesehen ... Ich bin mir nicht sicher, ob es möglich wäre, zu ersetzen,
init
ohne in den Einzelbenutzermodus zu wechseln und etwas zu zaubern, was sich im Wesentlichen nicht wesentlich von einem Neustart unterscheidet.quelle