Není v nich žádný rozdíl. Interně dělají přesně to samé:
-
rebootpoužíváshutdownpří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ímSIGKILLsignál (stále se nachází ve zdrojích, lze jej vyvolat pomocí-fvolba), 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áinitproces 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 nowpří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)