GNU/Linux >> Znalost Linux >  >> Linux

Jaký je nyní rozdíl mezi restartem, init 6 a vypnutím -r?

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ím SIGKILL 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)


Linux
  1. Linux – rozdíl mezi restartem, init 6 a vypnutím -r teď?

  2. Jaký je rozdíl mezi Git Switch a Checkout?

  3. Jaký je rozdíl mezi strtok_r a strtok_s v C?

  1. Jaký je rozdíl mezi fsck a e2fsck?

  2. Jaký je rozdíl mezi adduser a useradd?

  3. Jaký je rozdíl mezi `su -` a `su --login`?

  1. Jaký je rozdíl mezi InnoDB a MyISAM?

  2. Rozdíl mezi příkazy zastavení a vypnutí?

  3. Rozdíl mezi [[ $a ==Z* ]] a [ $a ==Z* ]?