Warum benötigen wir die Neustartfunktion in verschiedenen Binärdateien?
shutdown -r
und
reboot
Oder unterscheiden sie sich in etwas?
Warum benötigen wir die Neustartfunktion in verschiedenen Binärdateien?
shutdown -r
und
reboot
Oder unterscheiden sie sich in etwas?
Antworten:
Wir brauchen sie nicht unbedingt beide, aber wir haben sie beide aufgrund der Geschichte von Unix und seiner Vielzahl von Versionen.
Aus ihren jeweiligen Manpages:
Das Herunterfahren ist universeller und leistungsfähiger, während der Neustart benutzerfreundlicher und leichter zu merken ist.
Mit shutdown können Sie ein temporäres Argument angeben (z. B. für einen Neustart in 5 Minuten) und neben dem Neustart viele weitere Aktionen ausführen, darunter:
Wenn Sie das System jetzt nur neu starten möchten, ist die Eingabe einfacher reboot
als shutdown -r now
.
shutdown
werden jetzt standardmäßig verwendet. Versuchen Sie shutdown -h
niemals, Hilfe zum Herunterfahren zu erhalten , insbesondere nicht auf einem Server irgendwo in einem Datencenter.
Die beiden Befehle machen etwas anderes, aber sie können sich gegenseitig anrufen, weshalb sie anscheinend dasselbe tun!
reboot
Ruft den Kernel auf, um einen Neustart der Hardware auszulösen. Dies geschieht jedoch nur, wenn das System zum Herunterfahren bereit ist - alle Daemons und Benutzerprozesse sollten gestoppt, Dateisysteme nicht gemountet usw. werden. Daher wird der Runlevel des Systems überprüft, und wenn er nicht 0 oder 6 ist, wird er tatsächlich aufgerufen Der shutdown
Befehl für Sie.
shutdown
bewirkt, dass der Runlevel des Systems geändert wird. Die Runlevel-Änderung (auf 0 für Halt oder 6 für Neustart) führt viele Skripte in /etc/rc0.d oder rc6.d aus, die Daemons herunterfahren, Dateisysteme aushängen usw. Schließlich rufen diese Skripte auf halt
oder reboot
- diesmal befindet sich das System in das richtige Runlevel und sie weisen den Kernel an, neu zu starten (oder anzuhalten).
Zusätzlich zu dem, was iconoclast geschrieben hat, gibt es einen wichtigen Unterschied zwischen den beiden Programmen: shutdown
is in /sbin
, while reboot
in /usr/bin
.
Warum ist das wichtig, fragst du? Ich werde es dir sagen.
Unter den Dingen /usr
sind solche zu verstehen, die erst verfügbar sein müssen, wenn das System so weit hochgefahren wurde, dass das System nur minimal funktionsfähig ist. Top-Level - Verzeichnisse , die traditionell nie auf separate Dateisystemen montiert - /bin
, /etc
, /sbin
etc. - werden voraussichtlich verfügbar sein , während das System diesen minimal nützlich Zustand erreicht. Es gibt verschiedene Implikationen dieses Entwurfs; Zum Beispiel ist es ein schlechter Stil, die "stop" -Klausel eines SysV-Init-Skripts zu schreiben, das Programme verwendet, /usr/bin
wenn es in /bin
oder eine Alternative gibt /sbin
.
shutdown
ist das wichtigste Dienstprogramm, das immer verfügbar ist. reboot
ist nur ein Hilfsprogramm.
reboot
ist in /sbin
Debian (mit SysVinit) und Ubuntu (mit Upstart).