Es gibt keinen Unterschied in ihnen. Intern machen sie genau dasselbe:
-
reboot
verwendet denshutdown
Befehl (mit dem Schalter -r). Der Shutdown-Befehl beendet alle laufenden Prozesse, hängt alle Dateisysteme aus und weist den Kernel schließlich an, den ACPI-Power-Befehl auszugeben. Die Quelle finden Sie hier. In älteren Distributionen zwang der Neustartbefehl die Prozesse zum Beenden, indemSIGKILL
ausgegeben wurde Signal (immer noch in Quellen zu finden, kann mit-f
aufgerufen werden Option), in den neuesten Distributionen ist es standardmäßig das anmutigere und init-freundlichereinit 1 -> shutdown -r
. Dadurch wird sichergestellt, dass Daemons sich vor dem Herunterfahren selbst bereinigen. -
init 6
sagt dieinit
Prozess, um alle erzeugten Prozesse/Daemons, wie in den Init-Dateien geschrieben, herunterzufahren (in der umgekehrten Reihenfolge, in der sie gestartet wurden) und schließlich denshutdown -r now
aufzurufen Befehl zum Neustart des Computers
Heutzutage gibt es keinen großen Unterschied, da beide Befehle genau dasselbe tun und die Init-Skripte respektieren, die zum Starten von Diensten/Daemons verwendet werden, indem sie die Shutdown-Skripte für sie aufrufen. Außer reboot -f -r now
wie unten angegeben
Es gibt eine kleine Erklärung aus Manpages, warum der reboot -f
ist nicht sicher:
-f, --force Force immediate halt, power-off, reboot. Don't contact the init system.
Bearbeiten:
Vergessen zu erwähnen, dass Sie in kommenden RHEL-Distributionen den neuen systemctl
verwenden sollten Befehl zum Abschalten/Neustarten. Wie in den Manpages von reboot
angegeben und shutdown
Sie sind "ein Legacy-Befehl, der nur aus Kompatibilitätsgründen verfügbar ist". und die systemctl
Methode ist die einzig sichere.
Das Herunterfahren ist vorzuziehen, da Sie damit den Grund angeben können für die drastische Aktion – etwas, das Sie immer tun sollten. Die Nachricht wird für die Nachwelt in den Protokollen aufgezeichnet. Zum Beispiel:
shutdown -r now 'Kernel upgrade requires reboot'
Sie können auch eine geplante Ausführung durchführen reboot -- indem Sie etwas anderes als now
angeben als Neustartzeit:
shutdown -r 22:00 'Work around kernel memory leak'
Dann werden Ihre Benutzer regelmäßig daran erinnert, auszusteigen, wenn die Zeit näher rückt – der Prozess wird geordneter und professioneller.
Auf traditionellen Unices reboot
und shutdown -r now
sind sehr unterschiedliche Befehle. Bei typischer Verwendung reboot
ist nur im Einzelbenutzermodus sicher zu verwenden.
shutdown -r now
ist die kanonische Methode zum Herunterfahren über verschiedene * nix's und im Allgemeinen sicherer zu verwenden und ist funktional äquivalent zu init 6
.
init(8)reboot(8)