Není v nich žádný rozdíl. Interně dělají přesně to samé:
-
reboot
používáshutdown
příkaz (s přepínačem -r). Příkaz shutdown slouží k ukončení všech běžících procesů, odpojení všech souborových systémů a nakonec říká jádru, aby vydalo ACPI power příkaz. Zdroj lze nalézt zde. Ve starších distribucích příkaz reboot vynucoval ukončení procesů vydánímSIGKILL
signál (stále se nachází ve zdrojích, lze jej vyvolat pomocí-f
volba), v nejnovějších distribucích je výchozím nastavením elegantnější a init přívětivějšíinit 1 -> shutdown -r
. To zajišťuje, že se démoni před vypnutím sami vyčistí. -
init 6
říkáinit
proces k vypnutí všech vytvořených procesů/démonů, jak jsou zapsány v init souborech (v opačném pořadí, v jakém byly spuštěny) a nakonec vyvoláníshutdown -r now
příkaz k restartování počítače
Dnes v tom není velký rozdíl, protože oba příkazy dělají přesně to samé a respektují init skripty používané ke spouštění služeb/démonů tím, že pro ně vyvolávají vypínací skripty. Kromě reboot -f -r now
jak je uvedeno níže
Existuje malé vysvětlení převzaté z manuálových stránek, proč reboot -f
není bezpečný:
-f, --force Force immediate halt, power-off, reboot. Don't contact the init system.
Upravit:
Zapomněl jsem zmínit, že v nadcházejících distribucích RHEL byste měli používat nový systemctl
příkaz k vypnutí/rebootu. Jak je uvedeno v manuálových stránkách reboot
a shutdown
jsou "starší příkaz dostupný pouze pro kompatibilitu." a systemctl
metoda bude jediná bezpečná.
Vypnutí je vhodnější, protože umožňuje zadat důvod za drastickou akci -- něco, co byste měli dělat vždy. Zpráva bude zaznamenána do protokolu (logů) pro budoucí generace. Například:
shutdown -r now 'Kernel upgrade requires reboot'
Můžete také provést plánované reboot -- zadáním něčeho jiného než now
jako čas restartu:
shutdown -r 22:00 'Work around kernel memory leak'
Vaši uživatelé pak budou pravidelně dostávat připomenutí, aby se dostali ven, jak se čas blíží – proces bude uspořádanější a profesionálnější.
Na tradičních jednotkách reboot
a shutdown -r now
jsou velmi odlišné příkazy. Při běžném používání reboot
je bezpečné používat pouze v režimu jednoho uživatele.
shutdown -r now
je kanonická metoda pro vypnutí napříč různými *nixy a obecně bezpečnější pro použití a je funkčně ekvivalentní init 6
.
init(8)reboot(8)