it-swarm.com.de

Der beste Weg, um CentOS ordnungsgemäß neu zu starten?

Ich habe immer den Befehl verwendet:

shutdown -r now

Manchmal verursacht dies jedoch MySQL-Probleme.

Was ist der eleganteste Weg, um CentOS neu zu starten?

Ich habe gesehen:

reboot

und

halt

Wie kann ich den Computer vorsichtig neu starten?

89
User

Es gibt keinen besseren Weg, um Ihren Server neu zu starten, indem Sie etwas anderes als diese Befehle verwenden.

  • Herunterfahren ist der häufigste Weg, um Ihr System zu stoppen. Hinzufügen des Arguments -r und eine bestimmte Zeit (oder 'now') starten Ihr System neu, anstatt es nach dem Herunterfahren anzuhalten.
  • Neustart ist ein Wrapper-Round-Shutdown, der einige Festplattenwartungsarbeiten durchführt (Synchronisieren und/oder Versetzen in den Standby-Modus und nicht wirklich relevant).
  • Neue Versionen von reboot (> 2.74) initiieren shutdown, wenn nicht in Runlevel 0 oder 6.
  • Die meisten Init-Skripte rufen halt auf, um sich anzumelden tmp .

Bei modernen Distributionen werden alle Aufgaben unabhängig vom verwendeten Befehl abgedeckt. Grundsätzlich initiieren sie alle die Laufzeit zum Herunterfahren Ihrer SysV (CentOS <7) oder systemd (CentOS> = 7) Skripte (ich werde sie zur Vereinfachung Init-Skripte nennen lesen).

Wenn Sie Schritt für Schritt mit Init-Skripten herunterfahren, stoppen Sie alle Ihre Dienste, die normalerweise unter runlevel 'S' registriert sind. Einzelne Init-Skripte können eine Zeitüberschreitung aufweisen, wie das MySQL-Init-Skript in CentOS. Wenn das Argument stop angegeben ist und der Dämon nicht in angemessener Zeit heruntergefahren wird, wird das Skript angehalten und beendet, was zu einem Fehler führt. Das Herunterfahren wird fortgesetzt, als ob nichts falsch wäre. Es dauert nur ein bisschen länger und es wird wahrscheinlich eine Warnung gedruckt. Am Ende, wenn alle Init-Skripte ausgeführt werden, geschieht das Unvermeidliche: Alle noch laufenden Prozesse erhalten ein SIGTERMSignal und nach einigen Sekunden (2 oder 5) a SIGKILL. Dadurch wird der Rest aufgeräumt, bevor ein Aufruf von ACPI ausgeführt wird, um Ihr System wirklich neu zu starten oder herunterzufahren.

Eine Ausnahme ist die Verwendung des Befehls reboot mit dem Befehl -f Mit dieser Option wird die Ausführung von Init-Skripten übersprungen und das System direkt neu gestartet.

Sie sind besser dran, die Ursache Ihrer Sorgen zu beheben: MySQL wird nicht richtig heruntergefahren.

Dies ist häufig auf die enorme Menge an Arbeit zurückzuführen, die ausgeführt werden muss, bevor der Dämon sicher beendet werden kann. Ich hatte einmal eine MySQL-Instanz mit +300.000 Tabellen, deren Beendigung über eine Stunde dauerte. Ähnliche Probleme treten bei Systemen auf, die große Puffer und eine geringe Verfügbarkeit von E/A verwenden.

104
Joffrey

Ein ordnungsgemäßes Herunterfahren von Centos 6.x sollte mit dem Befehl als root erfolgen:

shutdown -h now

Dadurch wird versucht, alle ausgeführten Dienste zu stoppen, bevor der Server ordnungsgemäß heruntergefahren wird.

Die Verwendung dieses Befehls verhindert auch Probleme mit dem mySQL-Socket.

Ebenso für einen ordnungsgemäßen Neustart:

reboot -h now

Eine vorherige Antwort zu einer ähnlichen Frage können Sie hier lesen:

https://stackoverflow.com/questions/20407292/centos-another-mysql-daemon-already-running-with-the-same-unix-socket

38
GeckoSEO

Ich benutze den Befehl 'init 6'.

init 6 weist den init-Prozess an, alle in den init-Dateien geschriebenen erzeugten Prozesse/Daemons herunterzufahren (in der umgekehrten Reihenfolge, in der sie gestartet wurden) und zuletzt den Befehl shutdown -r now aufzurufen, um den Computer neu zu starten.

Weitere Informationen finden Sie zu dieser Frage .

3
Itai Ganot

Wenn ich Endbenutzern und Kunden Remote-Anweisungen erteile, weise ich sie an, poweroff zum Herunterfahren und Ausschalten des Systems zu verwenden.

Wenn sie einen Warmstart wünschen, schlage ich vor, dass sie den Befehl reboot verwenden.

Ich nehme an, man könnte sagen, dass Ausgabe Ctrl-Alt-Delete erreicht dies auch;)

2
ewwhite

Ich habe das Gefühl, dass Ihnen diese Antwort vielleicht nicht gefällt, aber DIESE Antwort enthält einige Erkenntnisse, die keiner der anderen berücksichtigt. . . Du schreibst:

Ich habe immer den Befehl verwendet:

herunterfahren -r jetzt

Manchmal verursacht dies jedoch MySQL-Probleme.

Das Problem hier ist NICHT Ihre Methode zum Herunterfahren, sondern die Software, die ein Herunterfahren nicht ordnungsgemäß handhaben kann. MySql.

Die EINZIGE Möglichkeit, dies wirklich anzugehen, besteht darin, MySql zu ersetzen (PostgreSql ist ein großartiger Ersatz) OR Schreiben Sie Ihr eigenes Shutdown-Skript, das MySql ZUERST wie ein Baby verhätschelt, und wenn es glücklich ist, DANN heruntergefahren zu werden fährt das System herunter.

... Als eine Person, die sich seit über 26 Jahren auf Datenbanksysteme spezialisiert hat, kann ich Ihnen sagen, dass MySql erst in jüngster Zeit begonnen hat, sich in Bezug auf Kompetenz in den wichtigsten Facetten von Datenbanksystemen zusammenzuschließen für - Datensicherheit/Integrität. Früher haben sie diesen Aspekten weniger Aufmerksamkeit geschenkt und der Leistung mehr Aufmerksamkeit geschenkt. Aber was nützt gute Leistung, wenn Sie Daten verlieren? Bei EINIGEN Anwendungen, wie z. B. Netflix-Streaming-Videoaufzeichnung zu dem Zeitpunkt, an dem Sie sie anzeigen, ist die absolute Wiedergabetreue möglicherweise nicht besonders wichtig. Vielleicht möchten sogar Ihre Kunden, dass das Video nach einem Fehler ein wenig gesichert wird. Aber in einem Bankensystem ist es eine Katastrophe von epischen Ausmaßen. Nur der Dateneigentümer kann wissen, was für ihn richtig ist.

0
Richard T