So fahren Sie einen Unix / Linux-Server ordnungsgemäß herunter oder starten ihn neu

11

Was ist der richtige Weg, um einen Unix / Linux-Server auszuschalten?

Durch mein Googeln habe ich (hoffentlich) Folgendes gelernt:

Herunterfahren : Ich sollte dies verwenden, mit dem Parameter -h zum Anhalten oder dem Parameter -r zum Neustarten

halt : Hält den Computer an (stoppt den Prozessor? Schaltet dies den Computer physisch aus?). Ich denke, dies wird Shutdown aufrufen, wenn nicht bei init0, sonst wird nur angehalten.

Neustart : Wenn nicht bei init6, wird das Herunterfahren aufgerufen, andernfalls wird der Computer neu gestartet.

Wenn alles richtig ist, kann ich nur nicht herausfinden, was genau "halt" macht. Stoppt es nur den Prozessor, aber schaltet es den Computer nicht physisch aus? Wie "schalte" ich den Computer aus?

Vielen Dank

Tony Stark
quelle

Antworten:

13

shutdown -h nowwird den Computer mit den meisten Systemen ausschalten, aber es bleibt der Implementierung überlassen. Verwenden Sie -Pzu poweroff sicher und -Hzu Stillstand sicher. Dies ist die Methode, die ich empfehlen würde, um das System herunterzufahren. Es werden alle richtigen Skripte ausgeführt.

haltohne -fwird nur das obige Herunterfahren aufgerufen und so werden rebootsie im Grunde nur Aliase sein.

Kyle Brandt
quelle
Ich bin jetzt ein großer Fan von / sbin / shutdown -h (-r). mit "halt" hat mich immer erschreckt.
RateControl
1
Thoreau macht einen weiteren guten Punkt: Sie sollten versuchen, wichtige Systembefehle mit einem expliziten Pfad (z. B. / sbin / shutdown) aufzurufen. Dies kann Sie retten, wenn Ihr System jemals kompromittiert wird und Sie sich dessen nicht bewusst sind.
Ryan Fisher
1
mystikphish: Einverstanden, diese Gewohnheit anzunehmen. Obwohl er einen guten Punkt hat, weiß ich nicht, ob ich seinem Rat in Bezug auf IT im Allgemeinen vertrauen würde, wenn er seine ganze Zeit in einer Einraumkabine ohne Strom verbringt.
Kyle Brandt
Es wäre ein schlechter Kompromiss, wenn es nicht die ausführbare Datei in dem Pfad ändern würde, der in Ihren Fingern
verwurzelt ist
@ Kyle Brandt, schön.
Joseph Kern
3

Unter Linux habe ich immer rebootund haltobwohl ich auch Leute kenne, die haltbeängstigend finden . halt(8)Art sagt warum:

Unter älteren Sysvinit-Versionen sollten Neustart und Stopp niemals direkt aufgerufen werden. Ab Release 2.74 rufen Sie beim Anhalten und Neustarten das Herunterfahren (8) auf, wenn sich das System nicht in Runlevel 0 oder 6 befindet. Dies bedeutet, dass bei Anhalten oder Neustart das aktuelle Runlevel nicht ermittelt werden kann (z. B. wenn / var / run / utmp dies nicht getan hat) wurde korrekt initialisiert) Herunterfahren wird aufgerufen, was möglicherweise nicht das ist, was Sie wollen. Verwenden Sie das Flag -f, wenn Sie einen harten Stopp oder Neustart durchführen möchten.

sysvinit 2.74 ist vom 17. März 1998 um 21:53 Uhr. :) :)

In Bezug auf Ihre Frage zum Ausschalten können Sie poweroffoder verwenden halt -p. Die neuesten Linux-Systeme scheinen sich nur haltoder shutdown -hauch auszuschalten.

Marie Fischer
quelle
Solaris ist immer noch in der Menge, in der "Halt" beängstigende Dinge tut.
Karl Katzke
3

Ich benutze halt- weniger Parameter, um mich zu erinnern.

Jemand hat einen virtuellen Molly Guard entwickelt, um sicherzustellen, dass nicht versehentlich der falsche Server gestoppt wird. Es hat mich bei einigen Gelegenheiten gerettet. Es ist in molly-guardUbuntu verpackt .

Morten Siebuhr
quelle
1
Für den Fall, dass sich jemand fragt, wie Molly-Guard funktioniert, hier ein Beispiel: guillaume.segu.in/blog/home/118/…
Marie Fischer
1

Ich benutze im Allgemeinen (natürlich als Root-Benutzer):

 init 0

um das System in einen ausgeschalteten Zustand zu bringen. Dies führt ein heruntergekommenes Scripting durch.

 init 6

um das System herunterzufahren und es automatisch neu starten zu lassen. Dies führt auch heruntergekommene Skripte durch.

mdpc
quelle
1
halt würde auch alle initscripts mit dem Parameter "stop" ausführen.
Hayalci
1
Auf welchem ​​System wird halt nicht schön heruntergefahren?
Asjo
2
Basierend auf den beiden oben genannten Kommentaren habe ich meine Notiz bearbeitet, um meinen Stoppkommentar zu entfernen. Ich habe jedoch unter FreeBSD 7.2 überprüft, dass Solaris 10 5/2009 x86, das den einfachen Stopp-Befehl auf diesen beiden Systemen ausführt, KEINE Standard-Rundown-Sequenz aktiviert. Unter Centos 5.3, OpenSUSe 11.1 und Fedora 11 aktiviert der Stopp-Befehl jedoch die Standard-Rundown-Sequenz und verhält sich im Wesentlichen wie Init 0. FYI ....
mdpc
0

Bemerkenswert hier:

Solaris benötigt entweder "shutdown -y -i5 -g0" zum Herunterfahren oder "shutdown -y -i6 -g0" zum Neustart. Das Anhalten oder Neustarten unter Solaris sollte nur verwendet werden, wenn es akzeptabel ist, vor dem Herunterfahren keine Warnung oder Nachfrist anzugeben. Dies kann zu Problemen mit Festplattensystemen führen, wenn Sie sie vor dem Herunterfahren nicht aushängen 'kennt?

Es ist am besten, Verfahren anzuwenden, die für die Betriebssysteme am besten geeignet sind, die Sie täglich berühren, damit Sie nicht versehentlich um 2 Uhr morgens mit den Fingern am Autopiloten etwas Schlechtes verschrauben.

Geben Sie beispielsweise niemals "killall" in Solaris ein, während dies unter Linux ein ziemlich häufiger Befehl ist. 'pkill' funktioniert jedoch bei beiden gleich.

Karl Katzke
quelle
0

Geben Sie Folgendes ein, um es sofort herunterzufahren:

shutdown -h now 

und um es sofort herunterzufahren und neu zu starten, geben Sie Folgendes ein:

shutdown -r now
user3571127
quelle
1
Ich finde das die beste Antwort, nicht sicher warum warum herabgestimmt.
Basil A