Chcete začít s čistým štítem? Tento návod vám ukáže, jak elegantně a bezpečně restartovat nebo vypnout počítač s operačním systémem Linux nebo macOS prostřednictvím příkazového řádku.
Zastavení systému
Občas je potřeba provést restart nebo úplné vypnutí. Pokud pracujete na serveru bez grafického rozhraní nebo jste připojeni k vzdálenému počítači prostřednictvím SSH, příkazový řádek je vaše jediná možnost. Systémy Linux a systémy podobné Unixu, jako je macOS, nabízejí několik příkazů pro vypnutí nebo restartování systému přímo z textové konzole.
Mezi tyto příkazy patří:
vypnout
restart
zastavit
vypnout
Prozkoumání manuálových stránek pro tyto příkazy může být poněkud matoucí. V závislosti na tom, jaké parametry příkazové řádky použijete, mohou všechny tyto příkazy provádět odstávku, restartování nebo zastavení systému. Manuálové stránky pro restart, zastavení a vypnutí ve skutečnosti odkazují na stejný základ.
Co se skrývá v pozadí?
Odpověď se nachází v systemd, což je zaváděcí systém, který nahradil starší System V init. Ve světě Linuxu začala Fedora používat systemd v roce 2011 a od té doby ho přijala řada distribucí. Debian a Ubuntu přešly na systemd v roce 2015.
V distribucích, které používají systemd, jsou příkazy vypnutí, restart, zastavení a vypnutí v podstatě zástupci odkazující na příkaz systemctl. Zachování těchto příkazů zajišťuje určitou úroveň kompatibility s distribucemi, které jsou založeny na System V init. To znamená, že skripty v shellu (a zkušení správci systému System V) se nebudou muset přizpůsobovat při přechodu na počítače, kde běží distribuce se systemd.
Použití příkazu shutdown
Vypnutí nebo restartování systému, který používá více uživatelů, vyžaduje plánování. Je třeba rozhodnout, kdy chcete vypnutí nebo restart provést, a informovat o tom ostatní uživatele systému. Pokud používáte svůj osobní počítač a jste jediný uživatel, je situace mnohem jednodušší.
Chcete-li spustit jakýkoli z těchto příkazů, musíte být členem skupiny sudo, tedy mít oprávnění superuživatele a možnost používat příkaz sudo. Pokud vámi zadaný příkaz proběhne okamžitě a neovlivní ostatní přihlášené uživatele, nemusíte sudo používat. Pokud se pokusíte použít některý z těchto příkazů a je vám odmítnut přístup, zkuste to znovu s použitím sudo.
Příkaz shutdown standardně zajišťuje, že se všechny procesy řádně ukončí, všechny systémy souborů se synchronizují a veškerá aktivita CPU se zastaví. Tomu se říká stav „zastavení“. Poté se do hardwaru odešle signál, aby se vypnul zdroj napájení. Tomu se říká stav vypnutí neboli „power off“.
Je běžné předat příkazu shutdown parametry, jako je časový údaj a zpráva, která se pošle přihlášeným uživatelům, aby je upozornila na blížící se odstávku. Naplánujme si tedy vypnutí na 15 minut. Napište shutdown, mezeru, +15, mezeru a poté zprávu, kterou chcete uživatelům odeslat.
shutdown +15 Vypnutí za 15 minut!
Časový údaj, který jsme použili, byl +15, což značí 15 minut od aktuálního okamžiku. Znaménko + je volitelné, mohli bychom zadat pouze 15.
Zobrazí se potvrzení, že vypnutí bylo naplánováno a kdy proběhne. Přihlášení uživatelé obdrží zprávu, kterou jsme jim poslali.
Pro zrušení naplánovaného vypnutí použijte parametr -c (cancel).
shutdown -c
I když se vám nezobrazí potvrzení o zrušení vypnutí, přihlášení uživatelé dostanou upozornění.
Pokud nezadáte časový údaj, vypnutí se naplánuje na jednu minutu od aktuálního okamžiku. Důležité je, že pokud nezadáte časový údaj, nemůžete svým přihlášeným uživatelům poslat zprávu.
shutdown
Pokud nemůžete čekat ani minutu, můžete jako časový údaj použít now, a vypnutí proběhne okamžitě. Použití now je ekvivalentní použití +0.
Časovým údajem může být i konkrétní čas, například 23:00. Musí být ve formátu HH:MM a v 24hodinovém formátu. Pět minut před vypnutím systému se nová přihlášení zablokují.
Již víme, že výchozí akce příkazu shutdown způsobí, že počítač přejde do stavu zastavení a poté do stavu vypnutí. Toto chování lze změnit použitím dalších parametrů příkazové řádky.
Parametr -H (halt) uvede počítač do stavu zastavení, ale nevypne hardware.
Parametr -P (poweroff) je výchozí akce. Počítač se uvede do stavu zastavení a poté se vypne.
Parametr -r (reboot) uvede počítač do stavu zastavení a poté ho restartuje.
Parametr -h (halt a poweroff) je totožný s -P. Pokud použijete -h a -H společně, má přednost parametr -H.
Parametr -c (cancel) zruší jakékoli plánované vypnutí, zastavení nebo restartování.
Zde je příklad, kdy jsme naplánovali restart.
shutdown -r 08:20 Systém se restartuje v 08:20
Příkazy restart, halt a poweroff
Tyto příkazy provedou akci naznačenou v jejich názvu. Každý z nich ale přijímá parametry příkazové řádky, které umožňují, aby jakýkoli z nich provedl restart, zastavení nebo vypnutí. Proč si ale věci komplikovat? Tyto příkazy je nejlepší používat tak, jak se očekává.
Pokud chcete restartovat ihned, použijte reboot. Pokud chcete ihned vypnout, použijte poweroff, a pokud chcete systém ihned zastavit, použijte halt.
reboot
halt
poweroff
Tyto příkazy se provedou okamžitě. Pokud je některý z těchto příkazů odmítnut, použijte s ním sudo. Nicméně je dobré mít na paměti, že odmítnutí bývá obvykle způsobeno tím, že do systému jsou přihlášeni další uživatelé, které se chystáte odpojit.
Který příkaz je pro mě nejvhodnější?
V prostředích, kde pracuje více uživatelů, vám příkaz shutdown poskytne lepší kontrolu nad prováděnými akcemi. V těchto případech oceníte možnost naplánovat vypnutí a restart a upozornit uživatele zasláním zprávy. Pro počítač, který používá jeden uživatel, pravděpodobně budou vyhovovat příkazy reboot a poweroff.