Frage Der beste Weg, CentOS elegant neu zu starten?


Ich habe immer den Befehl verwendet:

shutdown -r now

Dies verursacht jedoch manchmal Probleme mit MySQL.

Was ist der eleganteste Weg CentOS neu zu starten?

Ich habe gesehen:

reboot

und

halt

Wie kann ich die Maschine sanft neu starten?


64
2017-08-15 01:48


Ursprung


reboot ist im Wesentlichen ein Alias ​​zu shutdown -r ... so ... ja. - Nathan C
Hat mein Beitrag Ihre Frage beantwortet, oder müssen Sie noch etwas wissen? - Joffrey
Kann hier noch nicht kommentieren, aber ich wollte hier eine Warnung zum Neustart machen. Wenn die Instanz auf Amazon EC2 ausgeführt wird, führt das Neustarten von -h jetzt zum Brick der Instanz, also tun Sie dies nie. Wenn Sie das System herunterfahren oder neu starten müssen, tun Sie dies stattdessen über die Online-Benutzeroberfläche von Amazon, nicht über die Shell. Wenn Sie Ihre Instanz zementieren, können Sie sie stoppen, das Volume trennen, eine separate Instanz erstellen und das Volume anhängen, ohne das erste Volume abzutrennen, das mit der neuen Instanz geliefert wurde. Dann müssen Sie ssh in die neue Instanz einfügen, das alte Volume mounten und Ihre Dateien daraus entfernen. - kloddant
eigentlich willst du rennen sync: sync; vor dem Laufen shutdown -r So werden alle Datei-E / A synchronisiert. Ich vermute, das wird auch das Problem klären mysql - user3629249


Antworten:


Es gibt keine bessere Möglichkeit, den Server neu zu starten, indem Sie etwas anderes als diese Befehle verwenden.

  • ausschalten ist die gebräuchlichste Art, Ihr System zu stoppen.
  • neu starten ist ein Wrapper-Round-Shutdown, der einige Festplattenwartungen durchführt (Synchronisation und / oder Standby-Modus) und nicht wirklich relevant ist.
  • Neue Versionen von reboot (> 2.74) wird initiiert shutdown wenn nicht in Runlevel 0 oder 6.
  • Die meisten Init-Skripte werden aufgerufen Halt um sich einzuloggen utmp.

Bei modernen Distributionen werden alle Aufgaben abgedeckt, unabhängig davon, welchen Befehl Sie verwenden. Im Grunde starten alle die Shutdown-Laufzeit Ihres SysV (CentOS <7) oder systemd (CentOS> = 7) Skripte (ich werde sie Init-Skripte zum leichteren Lesen nennen).

Herunterfahren mit Init-Skripten Schritt für Schritt stoppen Sie alle Ihre Dienste unter in der Regel registriert Runlevel "S". Einzelne Init-Skripte können ein Timeout haben, wie das MySQL-Init-Skript in CentOS. Wenn das Argument stop angegeben wird und der Daemon nicht in angemessener Zeit heruntergefahren wird, wird das Skript gestoppt und beendet, was zu einem Fehler führt. Der Abschaltvorgang wird fortgesetzt, als ob nichts falsch wäre, nur etwas länger dauern und wahrscheinlich eine Warnung ausgeben. Am Ende, wenn alle Init-Skripte ausgeführt werden, wird das Unvermeidliche passieren: Alle noch laufenden Prozesse erhalten ein SIGTERM  Signal und nach ein paar Sekunden (2 oder 5), a SIGKILL. Dies wird den Rest vor einem aufräumen ACPI Der Anruf wird ausgeführt, um das System neu zu starten oder herunterzufahren.

Eine Ausnahme ist die Verwendung der reboot Befehl mit dem -f Wenn Sie diese Option wählen, wird das Ausführen von Init-Skripten übersprungen und das System wird direkt neu gestartet.

Sie werden die Ursache Ihrer Sorgen besser beheben können: MySQL wird nicht ordnungsgemäß heruntergefahren.

Dies liegt oft an der enormen Arbeitslast, die benötigt wird, bevor der Daemon sicher verlassen werden kann. Ich hatte einmal eine MySQL-Instanz mit +300.000 Tabellen, die über eine Stunde dauerte, um zu beenden. Ähnliche Probleme können bei Systemen mit großen Puffern und geringer E / A-Verfügbarkeit auftreten.


76
2017-08-23 21:27



+1 Das ist richtig, für echt !! - ewwhite
Ugh, hasse Antworten, die weit in die Tiefe gehen und dann niemals einfach sagen "das ist der Weg". Also ist es "Shutdown -r jetzt" oder was ist die richtige Neustartlinie? - jterm
@Jterm, Ugh, hasse Antworten, die zu oberflächlich sind und nur "das ist der Weg" sagen, ohne mich in dem zu unterrichten, was ich verlange, und mögliche Lösungen zu verstehen. - Joffrey
@Joffrey Ditto. Es gibt mehrere Möglichkeiten, die Frage schlecht zu beantworten. - jterm
Das ist eine wirklich schlechte Antwort! - Rauli Rajande


Ein ordnungsgemäßes Herunterfahren von Centos 6.x sollte mit dem Befehl als root durchgeführt werden:

shutdown -h now

Dies wird versuchen, alle laufenden Dienste zu stoppen, bevor der Server ordnungsgemäß heruntergefahren wird.

Mit diesem Befehl werden auch Probleme mit mySQL-Sockets verhindert.

Ähnlich, für einen graziösen Neustart:

reboot -h now

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

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


24
2017-09-04 21:26



ich denke du meinst shutdown -r nowoder vielleicht einfach reboot. Das reboot Befehl hat keine a -h Möglichkeit. - Michael Hampton♦
Hallo Michael, Centos 6.x hat tatsächlich die Möglichkeit, Dienste vor dem Neustart anzuhalten. "shutdown -h now" ist ein ordnungsgemäßes Herunterfahren und "reboot -h now" ist ein graziöser Neustart. Probieren Sie es auf Ihrem Centos-Server ... - GeckoSEO
Oh? Und was macht das? -h Option tun? Es ist nicht in der man-Seite. - Michael Hampton♦
"Ja wirklich?" Haben Sie Unterlagen dafür? Denn erstens, das ist was reboot tut ohne  -h. Zweitens ist das überhaupt nicht dokumentiert, soweit ich das beurteilen kann. - Michael Hampton♦
Um zu klären, wenn wir shutdown WITHOUT -h verwenden, hatten wir ständig Probleme mit den Sockets für mySQL. Seit dem Beginn der Verwendung von -h ist das Problem nie wieder aufgetreten. - GeckoSEO


Wenn ich den Endbenutzern und Kunden Fernanweisungen gebe, weise ich sie an, sie zu benutzen poweroff zum Herunterfahren und Ausschalten des Systems.

Wenn sie einen warmen Neustart wünschen, schlage ich vor, dass sie das benutzen reboot Befehl.

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


2
2017-08-15 02:04



Ich stimme dieser Antwort nicht zu. Neustart und Herunterfahren (Strg-Alt-Entf) ist energisch und kann in einigen Umgebungen, wie denen, die mySQL ausführen, eine Socket- "Sperre" verursachen, die dann das Erstellen eines neuen Sockets oder das Löschen / Verschieben des vorhandenen Sockets vor dem Neuerstellen erfordert ein. - GeckoSEO
@GeckoSEO Es war ein witziger Vorschlag mit Bezug auf die Gefahr, dass Strg-Alt-Entf aktiviert ist auf Linux-Servern. - ewwhite
meine Antwort auf der anderen Seite war nicht witzig, ich versuchte nur die Antwort für diejenigen zu klären, die versuchen, diese Frage zu lösen. Bitte sehen Sie meine frühere Antwort, ich hoffe es hilft. - GeckoSEO


Ich benutze den Befehl 'init 6'.

Init 6 teilt dem Init-Prozess mit, dass alle erzeugten Prozesse / Daemons wie in den Init-Dateien geschrieben (in der umgekehrten Reihenfolge, in der sie gestartet wurden) heruntergefahren werden und zuletzt den Befehl shutdown -r now zum Neustart des Rechners aufgerufen wird.

Weitere Informationen können gefunden werden zu dieser Frage.


2
2017-08-26 14:35





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

Ich habe immer den Befehl verwendet:

Herunterfahren -r jetzt

Dies verursacht jedoch manchmal Probleme mit MySQL.

Das Problem hier ist NICHT Ihre Methode des Herunterfahrens, ist die Software, die ein Herunterfahren nicht richtig behandeln kann; MySql.

Die einzige Möglichkeit, die Sie wirklich ansprechen können, ist ersetzen MySql (PostgreSql ist ein großartiger Ersatz) ODER schreiben Sie Ihre eigenen Shutdown-Skript, die FIRST MySql wie ein Baby, und wenn es glücklich ist, heruntergefahren werden, dann wird das System heruntergefahren.

... Als jemand, der sich seit mehr als 26 Jahren auf Datenbanksysteme spezialisiert hat, kann ich Ihnen sagen, dass MySql erst in jüngster Zeit begonnen hat, bezüglich der Kompetenz in den wichtigsten Facetten dessen, was Datenbanksysteme sind, zusammenzuarbeiten für - Datensicherheit / Integrität. Früher haben sie diesen Aspekten weniger Beachtung geschenkt und der Leistung mehr Aufmerksamkeit geschenkt. Aber was bringt eine gute Leistung, wenn Sie Daten verlieren? Bei einigen Anwendungen, wie z. B. Netflix-Streaming-Videoaufnahmen an dem Punkt, den Sie gerade betrachten, ist absolute Wiedergabetreue möglicherweise nicht besonders wichtig - vielleicht möchten sogar Ihre Kunden das Video nach einem Fehler ein wenig sichern. Aber in einem Bankensystem ist es eine Katastrophe epischen Ausmaßes. Nur der Datenbesitzer kann wissen, was für ihn richtig ist.


0
2018-04-16 00:31



Ersetzen Sie mysql, nur weil Probleme das System neu starten oder herunterfahren? Und der letzte Teil der Lösung trägt nichts zur Lösung des Problems der Person bei, die die Frage stellt - ftrujillo