Was ist der Unterschied zwischen den Befehlen halt
und shutdown
?
Was ist der Unterschied zwischen den Befehlen halt
und shutdown
?
Antworten:
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
und shutdown
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 .
In den 1980er Jahren hatten die BSDs halt
, reboot
und shutdown
. System 5 UNIX verfügte über ein BSD-Kompatibilitäts-Toolset. Aber ursprünglich hatte es einen eigenen, anderen shutdown
Befehl; und hatte nicht halt
oder reboot
überhaupt nicht. (Einige System 5-Varianten hatten Dinge wie SCO XENIX haltsys
.)
Das BSD halt
und die reboot
Befehle waren niedrig, drastisch und unmittelbar. Der rücksichtsvolle Weg, ein BSD-System herunterzufahren, war der shutdown
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
execs halt
/ reboot
", und dass letztere mit Sorgfalt verwendet werden sollten; es war die Welt System 5 , wo die Menschen das Gegenteil Gewohnheit gelernt , dass halt
/ reboot
waren nur praktisch Kürzel und nichts mehr: /usr/ucb/halt
von der „BSD - Kompatibilität Package“, waren in der Tat nicht anders shutdown -h
. Am Ende taten sie es beide init 0
.
halt
. 1982-05-11. 4.2BSD Handbuch.haltsys
. 2005-06-03. SCO OpenServer Handbuch.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 von halt
, 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
und shutdown
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
und poweroff --reboot
, wie ich festgestellt , in die man -Seite für den Schmaus halt
, fasthalt
, reboot
, fastboot
, und poweroff
Befehle. ☺
halt
, reboot
, poweroff
, telinit
, Und shutdown
sind alle ein Programm . Es ist eigentlich das eigene systemctl
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 Verwendung halt
und den Befehlsoptionen zum Auslösen einer Aktion und der Verwendung shutdown
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 wie poweroff
.
Die BSDs behalten ihre Semantik der 1980er Jahre weitgehend bei. halt
und shutdown
ist somit sehr viel nicht gleichwertig in ihren Toolset. halt
und reboot
sind ein einziges Programm; und sind immer noch niedrig, unmittelbar und drastisch. Während shutdown
und poweroff
auch ein einziges Programm alle wichtigen Dinge erledigen, wie geplantes Herunterfahren, Schreiben von wall
Nachrichten, Protokollieren von Aktionen, Deaktivieren der Anmeldung und so weiter.
In den BSD-Toolsets wurde shutdown
/ poweroff
traditionell aufgerufen halt
/ reboot
, um die endgültige Systemstatusänderung durchzuführen . Die (heutzutage oft unkorrekte) Weisheit, die " shutdown
execs halt
/ 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
, und USR2
) # 1 zu verarbeiten. init
Führt die gesamte Systemstatusverwaltung auf diesen Systemen aus.
Auf alle, Options weniger shutdown now
ist nicht gleichbedeutend mit einem halt
, reboot
oder poweroff
. Es geht in den BSD- Single-User-Modus über , von dem aus man wieder in den Multi-User-Modus wechseln kann .
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.Im nosh System - Management - Toolset halt
, fasthalt
, poweroff
, fastpoweroff
, reboot
, und fastboot
sind alle ein Programm. Es ist eine Abwärtskompatibilitätsscheibe, an die normalerweise einfach gekettet wird shutdown
, das Gegenteil von empfangener Weisheit. Die --force
Option bewirkt, dass es system-control
stattdessen verkettet wird.
Daher gibt es in diesem Toolset keinen (nicht vorhandenen --force
) Unterschied zwischen dem halt
Befehl und dem shutdown
Befehl (mit der entsprechenden Option), da dieser Satz von "BSD / System 5-Kompatibilität" -Befehlen einfach eine dünne Zwischenschicht darüber ist shutdown
.
shutdown
. nosh Toolset-Handbuchseiten. Software.telinit, init, reboot, halt, haltsys, powercycle, poweroff, … fastboot, fasthalt, fastpowercycle, fastpoweroff, …
nosh Toolset-Handbuchseiten. Software.Wie bei nosh gilt im Toolset für das Upstart-Systemmanagement das Gegenteil der empfangenen BSD-Weisheit. halt
,, reboot
und poweroff
sind alle ein Programm, an das normalerweise gekettet wird shutdown
; es sei denn, die --force
Option wird verwendet, wodurch das reboot()
System sich selbst aufruft.
Daher gibt es auch in diesem Toolset keinen (nicht vorhandenen --force
) Unterschied zwischen dem halt
Befehl und dem Befehl und shutdown
(mit der entsprechenden Option). Auch wieder, Option-less shutdown now
(die keiner halt
, reboot
oder poweroff
bringt das System in bis aufrufen , da sie alle eingestellten Optionen beenden) Single - User - Modus , anstatt das Herunterfahren.
shutdown
(8) . Ubuntu-Handbuchseiten.reboot
(8), halt
(8), poweroff
(8) . Ubuntu-Handbuchseiten.init
+ rc
ToolsetAuch in diesem Toolset gilt das Gegenteil der empfangenen BSD-Weisheit halt
und es wird reboot
einfach shutdown
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 an init
.
Es gibt also auch hier keinen Unterschied (es sei denn, das System ist bereits weitgehend heruntergefahren) zwischen halt
und shutdown
weil das erstere nur das letztere aufruft. Und ja, wieder, Options weniger shutdown now
(die keiner halt
, reboot
oder poweroff
bringt das System in dem kann , wie sie alle eingestellten Optionen am Ende Aufruf) Single - User - Modus , anstatt das Herunterfahren.
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 .
Für diejenigen, die AWS EC2 verwenden: Unter AWS shutdown
stoppt eine Instanz, wenn sie halt
beendet wird.
In Linux, „Halt“ und „reboot“ ist Aliase der Abschaltbefehl - shutdown -h
und shutdown -r
jeweils. Bareword-Shutdown geht im Allgemeinen von -h aus.
aliases
im Sinne von Shell-Aliasen, aber ja, im halt
Grunde nur Anrufe shutdown -h
und reboot
läuft shutdown -r
. Beachten Sie , wenn Sie den Pass -f
(Kraft) Option halt
oder reboot
, 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 beide shutdown
und halt
als solches erkennen.
sendmail
Befehl der Fall . Es ist wie der sendmail
Befehl, aber nicht so, wie Sie denken.