Was ist der Unterschied zwischen den Befehlen halt
und shutdown
?
quelle
Was ist der Unterschied zwischen den Befehlen halt
und shutdown
?
Im Allgemeinen verwendet man den shutdown
Befehl . Es ermöglicht eine Zeitverzögerung und eine Warnmeldung vor dem Herunterfahren oder Neustarten, was für die Systemverwaltung von Mehrbenutzer-Shell-Servern wichtig ist. Sie kann den Benutzern die Ausfallzeit im Voraus mitteilen.
Daher muss der Befehl shutdown wie folgt verwendet werden, um den Computer sofort anzuhalten / auszuschalten (mindestens unter Linux und FreeBSD):
shutdown -h now
Oder starten Sie es mit einer benutzerdefinierten 30-minütigen Vorwarnung neu:
shutdown -r +30 "Planned software upgrades"
Nach der Verzögerung shutdown
zeigt init
den Runlevel 0 (HALT) oder 6 (reboot) zu ändern. (Beachten Sie, dass das Auslassen von -h
oder dazu -r
führt, dass das System in den Einzelbenutzermodus (Runlevel 1) wechselt, wodurch die meisten Systemprozesse beendet werden, das System jedoch nicht angehalten wird. Der Administrator kann weiterhin als root angemeldet bleiben.)
Sobald Systemprozesse beendet und Dateisysteme abgemeldet wurden, wird das System automatisch angehalten / ausgeschaltet oder neu gestartet. Dies erfolgt mit dem Befehl halt
oderreboot
, mit dem Änderungen auf Datenträgern synchronisiert werden und anschließend das eigentliche Anhalten / Ausschalten oder Neustarten ausgeführt wird.
Unter Linux wenn halt
oder reboot
ausgeführt wird , wenn das System nicht bereits den Shutdown - Prozess gestartet hat, wird es den aufrufen shutdown
Befehl automatisch anstatt direkt Erfüllung ihrer beabsichtigten Wirkung. Auf Systemen wie FreeBSD melden diese Befehle jedoch zuerst die Aktion an wtmp
und führen dann sofort den Stopp / Neustart selbst aus, ohne zuvor Prozesse zu beenden oder Dateisysteme abzuhängen.
halt
,reboot
undshutdown
Programme , die sich gegenseitig aufrufen. Es gibt ein einziges Programm mit vielen Befehlszeilen-Parsern, die intern in einem Codepfad gespeichert werden. Es gibt auch keine Runlevel. Das Herunterfahren erfolgt auch nicht in einem Einzelbenutzermodus. In der Tat wurde der Einzelbenutzermodus selbst umbenannt. Weitere Informationen finden Sie unter unix.stackexchange.com/a/196014/5132 .Die Vergangenheit
In den 1980er Jahren hatten die BSDs
halt
,reboot
undshutdown
. System 5 UNIX verfügte über ein BSD-Kompatibilitäts-Toolset. Aber ursprünglich hatte es einen eigenen, anderenshutdown
Befehl; und hatte nichthalt
oderreboot
überhaupt nicht. (Einige System 5-Varianten hatten Dinge wie SCO XENIXhaltsys
.)Das BSD
halt
und diereboot
Befehle waren niedrig, drastisch und unmittelbar. Der rücksichtsvolle Weg, ein BSD-System herunterzufahren, war dershutdown
Befehl, der all die Dinge ausführte, die man erwartet:wall
Nachrichten an Benutzer, Dienste, die ordnungsgemäß beendet wurden, geschriebene Protokolleinträge, deaktivierte Anmeldungen usw.Während die BSDs größtenteils dort waren, wo die empfangene Weisheit entstand, dass "
shutdown
execshalt
/reboot
", und dass letztere mit Sorgfalt verwendet werden sollten; es war die Welt System 5 , wo die Menschen das Gegenteil Gewohnheit gelernt , dasshalt
/reboot
waren nur praktisch Kürzel und nichts mehr:/usr/ucb/halt
von der „BSD - Kompatibilität Package“, waren in der Tat nicht andersshutdown -h
. Am Ende taten sie es beideinit 0
.Weitere Lektüre
halt
. 1982-05-11. 4.2BSD Handbuch.haltsys
. 2005-06-03. SCO OpenServer Handbuch.Heute
Heutzutage verfügen wir über eine Reihe möglicher Systemverwaltungs-Toolsets. Die BSDs haben immer noch ihr Toolset, obwohl sie in den neunziger Jahren von möglichen AT & Tisms befreit wurden. Miquel van Smoorenburg hat 1992 ein Linux
init
+rc
und die dazugehörigen Tools (neu) geschrieben , die heute als "System 5 init" bezeichnet werden, obwohl es eigentlich nicht die Software von UNIX System 5 ist (und nicht nur)init
). Es gibt auch systemd , Emporkömmling und nosh , von denen jede ihre eigenen Implementierungen vonhalt
,reboot
,fasthalt
,fastboot
, und so weiter.Die Toolsets sind ebenfalls gewachsen und haben sich geändert. Es gibt jetzt einen
poweroff
Befehl, der in den Betriebssystemen der 1980er Jahre nicht vorhanden war, da die Central Processing Units auf den meisten modernen Maschinen keine Möglichkeit hatten, ihre Stromversorgung zu steuern. Insbesondere Linux-Toolsets haben die BSD-Befehle erworben. Aber wie die BSD-Kompatibilitätstools unter UNIX System 5 sind sie keine exakten Workalikes und die Dinge wurden weitgehend reduziert.Dieses Abflachen hat uns auf den Punkt gebracht , wo
halt
undshutdown
sind meist gleich. Die genauen Details variieren jedoch von Toolset zu Toolset, und die Mechanismen der einzelnen Toolset unterscheiden sich geringfügig.Es hat uns auch auf die etwas peinliche Position , wo dieser Befehlssatz mit Kompatibilitätsoptionen so behängt hat worden , dass es jetzt Menschen Computer zu geben , sich selbst widersprech Anweisungen wie erlaubt
reboot --halt
undpoweroff --reboot
, wie ich festgestellt , in die man -Seite für den Schmaushalt
,fasthalt
,reboot
,fastboot
, undpoweroff
Befehle. ☺Das systemd-Toolset
halt
,reboot
,poweroff
,telinit
, Undshutdown
sind alle ein Programm . Es ist eigentlich das eigenesystemctl
Programm von systemd . Es hat mehrere Kommandozeilen-Parser für die verschiedenen Kommandozeilensyntaxen dieser Kommandos sowie für seine eigenen, die sich dann jedoch intern größtenteils in einen einzigen Codepfad unterteilen lassen. Es gibt keinen Unterschied zwischen der Verwendunghalt
und den Befehlsoptionen zum Auslösen einer Aktion und der Verwendungshutdown
und den Befehlsoptionen zum Auslösen derselben Aktion.systemd betrachtet den Rettungsmodus (den die Systembenutzer in Einzelbenutzermodus umbenannt haben ) nicht als Herunterfahren des Systems und kann mit keinem dieser Befehle erreicht werden. Option-less
shutdown now
ist dasselbe wiepoweroff
.Weitere Lektüre:
Die BSDs
Die BSDs behalten ihre Semantik der 1980er Jahre weitgehend bei.
halt
undshutdown
ist somit sehr viel nicht gleichwertig in ihren Toolset.halt
undreboot
sind ein einziges Programm; und sind immer noch niedrig, unmittelbar und drastisch. Währendshutdown
undpoweroff
auch ein einziges Programm alle wichtigen Dinge erledigen, wie geplantes Herunterfahren, Schreiben vonwall
Nachrichten, Protokollieren von Aktionen, Deaktivieren der Anmeldung und so weiter.In den BSD-Toolsets wurde
shutdown
/poweroff
traditionell aufgerufenhalt
/reboot
, um die endgültige Systemstatusänderung durchzuführen . Die (heutzutage oft unkorrekte) Weisheit, die "shutdown
execshalt
/reboot
" tatsächlich noch auf NetBSD und OpenBSD hält. Unter FreeBSD / TrueOS / DragonFlyBSD ist dies jedoch nur der Fall, wenn die-o
Option verwendet wird. Auf dieser BSDs, sowohl diese Programme von normalerweise verordnen die Endsystem Zustandsänderung durch verschiedene Signale zu senden (INT
,USR1
, undUSR2
) # 1 zu verarbeiten.init
Führt die gesamte Systemstatusverwaltung auf diesen Systemen aus.Auf alle, Options weniger
shutdown now
ist nicht gleichbedeutend mit einemhalt
,reboot
oderpoweroff
. Es geht in den BSD- Single-User-Modus über , von dem aus man wieder in den Multi-User-Modus wechseln kann .Weitere Lektüre:
shutdown
. System Manager's Manual . NetBSD-Handbuchseiten. 2011-11-04.reboot
,halt
. OpenBSD-Handbuchseiten. 2016-09-03.shutdown
. FreeBSD-Handbuchseiten. 2016-09-21.reboot
,halt
,fastboot
,fasthalt
. FreeBSD-Handbuchseiten. 2017-03-19.shutdown
. System Manager's Manual . DragonFlyBSD-Handbuchseiten. 29.09.2016.reboot
,halt
,fastboot
,fasthalt
. System Manager's Manual . DragonFlyBSD-Handbuchseiten. 29.09.2016.Das Nosh-Toolset
Im nosh System - Management - Toolset
halt
,fasthalt
,poweroff
,fastpoweroff
,reboot
, undfastboot
sind alle ein Programm. Es ist eine Abwärtskompatibilitätsscheibe, an die normalerweise einfach gekettet wirdshutdown
, das Gegenteil von empfangener Weisheit. Die--force
Option bewirkt, dass essystem-control
stattdessen verkettet wird.Daher gibt es in diesem Toolset keinen (nicht vorhandenen
--force
) Unterschied zwischen demhalt
Befehl und demshutdown
Befehl (mit der entsprechenden Option), da dieser Satz von "BSD / System 5-Kompatibilität" -Befehlen einfach eine dünne Zwischenschicht darüber istshutdown
.Weitere Lektüre:
shutdown
. nosh Toolset-Handbuchseiten. Software.telinit, init, reboot, halt, haltsys, powercycle, poweroff, … fastboot, fasthalt, fastpowercycle, fastpoweroff, …
nosh Toolset-Handbuchseiten. Software.Das Upstart-Toolset
Wie bei nosh gilt im Toolset für das Upstart-Systemmanagement das Gegenteil der empfangenen BSD-Weisheit.
halt
,,reboot
undpoweroff
sind alle ein Programm, an das normalerweise gekettet wirdshutdown
; es sei denn, die--force
Option wird verwendet, wodurch dasreboot()
System sich selbst aufruft.Daher gibt es auch in diesem Toolset keinen (nicht vorhandenen
--force
) Unterschied zwischen demhalt
Befehl und dem Befehl undshutdown
(mit der entsprechenden Option). Auch wieder, Option-lessshutdown now
(die keinerhalt
,reboot
oderpoweroff
bringt das System in bis aufrufen , da sie alle eingestellten Optionen beenden) Single - User - Modus , anstatt das Herunterfahren.Weitere Lektüre:
shutdown
(8) . Ubuntu-Handbuchseiten.reboot
(8),halt
(8),poweroff
(8) . Ubuntu-Handbuchseiten.Das Linux System 5
init
+rc
ToolsetAuch in diesem Toolset gilt das Gegenteil der empfangenen BSD-Weisheit
halt
und es wirdreboot
einfachshutdown
verkettet - es sei denn, das System befindet sich bereits im ausgeschalteten Zustand oder hält die "Run-Levels" an. In diesem Fall bewirken diese Befehle tatsächlich die endgültige Änderung des Systemstatus.shutdown
wiederum ketten aninit
.Es gibt also auch hier keinen Unterschied (es sei denn, das System ist bereits weitgehend heruntergefahren) zwischen
halt
undshutdown
weil das erstere nur das letztere aufruft. Und ja, wieder, Options wenigershutdown now
(die keinerhalt
,reboot
oderpoweroff
bringt das System in dem kann , wie sie alle eingestellten Optionen am Ende Aufruf) Single - User - Modus , anstatt das Herunterfahren.quelle
Ich vermute, dass dies etwas von der von Ihnen verwendeten UNIX / Linux-Version abhängt. Auf Centos (und ich erwarte andere moderne Linux) wird das Herunterfahren von Aufrufen angehalten (vorausgesetzt, Sie befinden sich nicht auf Runlevel 0 oder 6), damit Ihr System sauber heruntergefahren wird. Unter Solaris 10 ist halt brutaler, es leert nur die Festplatten-Caches und schaltet das System aus - es wird kein Versuch unternommen, Skripte auszuführen oder smf-Funktionen herunterzufahren .
quelle
Für diejenigen, die AWS EC2 verwenden: Unter AWS
shutdown
stoppt eine Instanz, wenn siehalt
beendet wird.quelle
In Linux, „Halt“ und „reboot“ ist Aliase der Abschaltbefehl -
shutdown -h
undshutdown -r
jeweils. Bareword-Shutdown geht im Allgemeinen von -h aus.quelle
aliases
im Sinne von Shell-Aliasen, aber ja, imhalt
Grunde nur Anrufeshutdown -h
undreboot
läuftshutdown -r
. Beachten Sie , wenn Sie den Pass-f
(Kraft) Optionhalt
oderreboot
,shutdown
wird nicht genannt.sendmail
Befehl an dieser Stelle gleichsetzen. Wie bei MTAs spielt es keine Rolle, welches Init-System Sie verwenden, da sie alle beideshutdown
undhalt
als solches erkennen.sendmail
Befehl der Fall . Es ist wie dersendmail
Befehl, aber nicht so, wie Sie denken.