Restartování Linuxového serveru s restart systemctlZdá se to jednoduché. Jeden příkaz, jedno heslo sudo a počítač se restartuje. Problém je v tom, že tento restart také ukončí otevřené relace, SSH připojení, spuštěné procesy a někdy i službu, kterou někdo používal.
Proto doporučuji řešit restart jako drobnou údržbu, a to i na osobním počítači nebo VPS. Cílem není komplikovat základní příkaz, ale zkontrolovat, co běží, v případě potřeby zobrazit varování a poté čistě restartovat, aniž byste příliš pozdě zjistili, že probíhá nějaká úloha.

Co vlastně dělá restart systemctl
Na moderní distribuci se systemd, restart systemctl Požádá systém o restartování počítače. Je to podobné příkazu. restartovatale explicitně procházíte systemd, který zajišťuje vypnutí služeb před restartem.
restartování systému sudo systemctl
Nesmí být zaměňována s vypnutí systemctlkterý vypíná stroj, nebo zastavení systemctlcož v závislosti na hardwaru vypne systém, aniž by nutně přerušilo napájení. Pokud je vaším cílem restartovat počítač, aby se aplikovala aktualizace jádra, znovu načetl síťový zásobník nebo zkontrolovala služba při spuštění, restart systemctl je přímý příkaz.
Pokud jste pouze upravili soubor .servisÚplný restart není vždy nutný. V takovém případě začněte tím, že to pochopíte. Kdy použít démon-reload systemctlpoté restartujte pouze danou službu.
Před odhlášením zkontrolujte otevřené relace
Před restartem serveru nejdříve zkontroluji, kdo je připojen. Je to hloupé, ale zabrání to nechtěnému odpojení relace kolegy, přerušení SCP přenosu nebo narušení příkazu spuštěného z terminálu.
SZO
w
seznam relací loginctl
SZO poskytuje rychlý přehled o připojených uživatelích. w dodává, co dělají. seznam relací loginctl je užitečné v systému systemd, zejména pokud chcete identifikovat lokální, SSH nebo grafické relace.
Na produkčním serveru před restartem zobrazím varování. Stačí jednoduché oznámení:
sudo wall "Server se restartuje za 10 minut kvůli údržbě."
Pokud VPS používáte pouze vy, může se tento krok zdát zbytečný. Vždycky na něj ale pamatuji, když máte více účtů, klientský přístup, dlouhodobě běžící úlohu nebo exponovanou aplikaci.
Monitorování služeb a probíhajících úloh
Čistý restart neopraví všechno. Pokud služba nefungovala správně již před restartem, může se po něm vrátit do stejného stavu. Raději to předem zkontroluji a až poté porovnám.
systemctl --selhalo
systemctl list-jobs
systemctl je spuštěný
systemctl --selhalo vypíše vadné jednotky. systemctl list-jobs zobrazuje čekající operace systemd. systemctl je spuštěný poskytuje celkový stav, například běh, degradován Nebo spouštění.
Pokud selže kritická služba, před restartováním si poznamenejte její název:
název_služby_stavu_systemctl
journalctl -u název-služby -b --no-pager
Chcete-li získat komplexnější seznam služeb a odfiltrovat ty, které jsou aktivní nebo nefunkční, můžete se také podívat na průvodce na… užitečné příkazy systemctl před náhodným restartemTo je přesně ten druh ověřování, který zabraňuje záměně příčiny a následku.
Naplánujte restart místo okamžitého vypnutí
restart systemctl restartuje se okamžitě. Pokud chcete povolit zpoždění, použijte místo toho vypnutí s možností -r. THE -r znamená restart.
sudo shutdown -r +10 "Restart se očekává za 10 minut"
Zrušení plánovaného restartu:
sudo vypnutí -c
Toto je moje preferovaná metoda, když existují sebemenší pochybnosti. Necháte si pár minut na dokončení zálohy, ukončení relace, upozornění uživatele nebo kontrolu monitorovacího systému.
Dokumentace o vypnutí Je to stále užitečné, pokud chcete porozumět akceptovaným formátům času. systemctlReferenční informace o systemd jsou k dispozici v oficiální stránka systemctl.
Případ SSH: nerestartujte bez bezpečnostní sítě
Pokud jste připojeni přes SSH, restartování ukončí vaši relaci. To není problém, pokud se server restartuje správně. Problém se stane, pokud síť, firewall, disk nebo SSH nevracej se nahoru.
- Pokud je to možné, zachovejte přístup ke konzoli, KVM, IPMI, iDRAC, iLO nebo konzoli dodavatele.
- Pokud se v počítači již vyskytly chyby, zkontrolujte před restartem místo na disku.
- Vyhněte se okamžitému restartu po neotestované změně sítě.
- Pokud jste upravili firewall, ponechte pravidlo pro návrat nebo lokální relaci root.
Na VPS také před spuštěním příkazu zkontroluji, zda funguje webová konzole poskytovatele. Trvá to 30 sekund a může vám to ušetřit frustrující žádost o podporu.
Po restartu zkontrolujte, zda se zařízení vrátilo do normálního provozu.
Po opětovném připojení nepředpokládejte, že je vše v pořádku jen proto, že SSH reaguje. Začněte kontrolou posledního spuštění:
doba provozuschopnosti
systemctl je spuštěný
systemctl --selhalo
Pak zkontrolujte chyby během aktuálního procesu spouštění:
journalctl -b -p varování..alert --no-pager
Pokud chcete porovnat s předchozím spuštěním, použijte:
journalctl -b -1 -p varování..alert --no-pager
Průvodce po journalctl a poslední spuštění Linuxu Tato část podrobně popisuje, zda je třeba prošetřit pomalé spouštění, selhání služby nebo hardwarovou zprávu.
Můj kontrolní seznam před restartem Linuxu
SZONebowvidět otevřené zasedání.systemctl --selhaloupozornit na služby, které jsou již chybné.systemctl list-jobsaby se zabránilo přerušení aktuálně spuštěné operace systemd.vypnutí -r +10pokud chcete povolit zpoždění.- Přístup ke konzoli, pokud pracujete na dálku.
journalctl -bpo restartu zkontrolovat chyby.
Na zkušební stanici, restartování systému sudo systemctl To často stačí. Na serveru raději strávím dvě minuty kontrolou relací a služeb, než abych ztratil deset sekund honěním se za strojem, který se nevrací.