Správa serverů často zahrnuje nutnost jejich restartování či vypínání.
Tyto akce mohou být vyvolány pravidelnou údržbou, například aktualizacemi operačního systému, nebo neočekávanými hardwarovými problémy, které vyžadují odstavení systému za účelem opravy.
Operační systém Linux poskytuje několik metod, jak provést restart nebo vypnutí serveru. Zatímco běžící systém by měl reagovat na standardní příkazy, u serveru s problémy může být nutný vynucený restart. Je důležité mít na paměti, že většina z těchto příkazů vyžaduje administrátorská práva (superuživatele nebo použití sudo), protože restartování je citlivý administrativní úkon, který u víceuživatelských systémů nebo serverů s kritickými procesy představuje narušení provozu.
Následující text popisuje různé postupy, které vám mohou pomoci při restartování nebo vypínání systémů Linux.
Uživatelské rozhraní (GUI)
Pokud používáte grafické prostředí jako Gnome, KDE, Mate, XFCE a další, v systémové nabídce či nabídce aplikací se obvykle nachází tlačítko pro správu napájení. Zde můžete najít volby pro odhlášení, restart, hibernaci nebo vypnutí. Nabízené možnosti se mohou lišit v závislosti na konkrétní distribuci Linuxu, používaném prostředí a verzi operačního systému. Nicméně, nastavení související s napájením by zde mělo být vždy k dispozici.
Například, v prostředí Ubuntu Mate je v pravém horním rohu obrazovky v nabídce napájení možnost „Vypnout“.
Po zvolení volby „Vypnout…“ se objeví dialogové okno s možnostmi jako „Pozastavit“, „Restartovat“, „Zrušit“ a „Vypnout“. Můžete buďto pokračovat kliknutím na „Restartovat“ nebo „Vypnout“, nebo akci zrušit a vrátit se zpět do prostředí plochy.
Dostupné možnosti a vzhled GUI se mohou lišit v závislosti na distribuci a prostředí, ale vždy by měly existovat možnosti pro změnu stavu napájení. S GUI obvykle stačí několik kliknutí v nabídce napájení.
Příkaz systemctl
V systémech Linux s init systémem systemd můžete pro restart počítače použít příkaz `systemctl`.
$ sudo systemctl start reboot.target
Jednodušeji lze použít příkaz `systemctl` s příslušnou volbou:
$ sudo systemctl reboot
Pro vypnutí systému se `systemctl` používá takto:
$ sudo systemctl shutdown
K zastavení systému slouží příkaz:
$ sudo systemctl halt
Příkaz shutdown
Příkaz `shutdown` lze použít jak pro vypnutí, tak pro restart systému. Pro okamžitý restart použijte:
$ sudo shutdown -r now
Pro vypnutí bez prodlevy se používají parametry `-h` nebo `-P`:
$ sudo shutdown -P now
Příkazu `shutdown` můžeme nastavit zpoždění, po kterém dojde k restartu/vypnutí:
$ sudo shutdown -r 10
Chcete-li zastavit systém bez vypnutí hardwaru, použijte parametr `-H`:
$ sudo shutdown -H now
Pokud zadáte samotný příkaz `shutdown`, vypnutí se naplánuje za minutu. Pro vypnutí v určitý čas zadejte:
$ sudo shutdown 22:30
Příkaz `shutdown` odesílá zprávu do konzole přihlášeným uživatelům. Pokud chcete přidat vlastní zprávu, můžete ji uvést spolu s příkazem:
$ sudo shutdown 23:00 "Probíhá odstávka systému z důvodu údržby... uložte si svou práci"
Pro zrušení naplánovaného vypnutí slouží parametr `-c`:
$ sudo shutdown -c
V některých systémech příkaz `shutdown` volá interně `systemctl` pro provedení požadované operace restartu/vypnutí.
Příkaz reboot
Pro korektní restart systému můžete použít příkaz `reboot` (často s nutností použití `sudo`).
$ sudo reboot
Pro vypnutí systému pomocí příkazu `reboot` použijte parametr `-p`:
$ sudo reboot -p
Pro vynucený restart (u systémů, které nereagují na běžný příkaz) můžete použít parametr `-f`:
$ sudo reboot -f
Příkaz halt
K zastavení systému jednoduše použijte příkaz `halt`:
$ sudo halt
Příkaz poweroff
Pro vypnutí systému máte k dispozici také příkaz `poweroff`:
$ sudo poweroff
Příkaz init
Pro systémy, které nepoužívají systemd, příkaz `init` (funguje i `telinit`) umožňuje měnit úroveň běhu systému. Pro restart systému s `init` použijte:
$ sudo init 6
Podobně pro zastavení systému se `init` používá takto:
$ sudo init 0
Volání konkrétní úrovně běhu pomocí `init` způsobí, že systém spustí sérii init skriptů ve správném pořadí, aby se dosáhlo požadované úrovně běhu. Úroveň běhu 6 je definována pro restart, úroveň běhu 0 pro zastavení.
Tlačítko napájení
U Linuxu na stolních počítačích a noteboocích má stisknutí tlačítka napájení ve výchozím nastavení za následek uspání nebo vypnutí systému odesláním signálu pro vypnutí. Toto chování lze upravit v nastavení napájení systému. Tlačítko by mělo být ideálně používáno až jako poslední možnost, pokud běžné příkazy nefungují.
U vzdáleného serveru se systémem Linux tlačítko napájení obvykle systém vypne. Nicméně, v datových centrech se často využívají vzdálené administrátorské nástroje (CLI/GUI) pro restart či vypnutí, poskytované dodavateli serverů.
Kombinace kláves Alt + SysRq
U nereagujícího zamrzlého systému je obtížné dosáhnout restartu nebo vypnutí. Jako poslední možnost můžete zkusit stisknout kombinaci kláves Alt + PrintScreen a následně zadanou sekvenci kláves. Není to doporučený postup, ale může být použit jako poslední záchrana.
Vždy pamatujte, že při použití této metody hrozí ztráta či poškození dat, stejně jako u jiných vynucených restartů či vypnutí. Mějte proto zavedeny postupy pro zálohování a redundanci.
Aby tato možnost fungovala, musí být povolena v jádru Linuxu. Stav můžete ověřit příkazem:
$ cat /proc/sys/kernel/sysrq
Výstup `1` znamená, že je povolena plně. Číslo větší než `1` znamená částečné povolení. Pro explicitní povolení použijte:
$ sudo echo “1” > /proc/sys/kernel/sysrq
Pro restart systému pomocí této metody podržte Alt + SysRq (PrintScreen) a po krátkých prodlevách mezi klávesami stiskněte postupně:
R E I S U B
Pro vypnutí systému namísto `B` stiskněte `O`:
R E I S U O
Co klávesy znamenají:
- R: Přepnutí klávesnice z raw módu do módu XLATE
- E: Odeslání signálu SIGTERM všem procesům kromě init
- I: Odeslání signálu SIGKILL všem procesům kromě init
- S: Synchronizace připojených souborových systémů
- U: Znovupřipojení všech souborových systémů v režimu pouze pro čtení
Nakonec je buď:
- B: Okamžitý restart systému bez odpojování a synchronizace
NEBO
- O: Okamžité vypnutí systému bez odpojování a synchronizace
Shrnutí
V tomto článku jsou popsány různé metody pro restart nebo vypnutí systému Linux. Od jednoduchého grafického rozhraní až po složité příkazy v terminálu, které vám mohou ulehčit práci nebo umožnit automatizaci procesů. Pro případy zamrznutí systému byly popsány i vynucené způsoby, které nejsou ideální, ale v nouzi je lze použít.
Při používání příkazů z tohoto článku buďte opatrní, protože mají vliv na stav systému a u produkčních serverů mohou ovlivnit velké množství uživatelů a služeb. Prozkoumejte manuálové stránky zmíněných příkazů, abyste se o nich dozvěděli více a prozkoumali jejich možnosti.
Zde se můžete informovat o tom, jak nastavit WAS, aby při vypnutí nevyžadoval heslo.