V dnešní době je důležité zajistit, aby systémové služby běžely nepřetržitě, a to i v případě jejich selhání nebo pádu. V Linuxu, konkrétně v distribuci CentOS 7, nám k tomuto účelu slouží systemd, systém a služba init, která slouží jako systémový a servisní manažer. Jednou z klíčových vlastností systemd je možnost konfigurace automatického restartu služeb po jejich selhání. V tomto článku se podíváme na to, jak tuto funkcionalitu nakonfigurovat.
Předpoklady
Před konfigurací automatického restartu služby se ujistěte, že máte:
- Přístup k systému CentOS 7 s právy superuživatele (root).
- Základní znalosti práce s terminálem a editorem konfiguračních souborů (např. vi, nano).
Krok 1: Vytvoření nebo úprava služby
Prvním krokem je vytvoření nové služby nebo úprava již existující. Služby jsou v systemd definovány pomocí konfiguračních souborů s příponou .service
, které se obvykle nacházejí v /etc/systemd/system/
. Pro účely tohoto návodu vytvoříme jednoduchou službu s názvem example.service
.
- Otevřete nový konfigurační soubor pomocí příkazu:
sudo nano /etc/systemd/system/example.service
- Vložte do souboru následující obsah:
Tento příklad vytvoří službu, která spustí jednoduchý HTTP server na portu 8080 pomocí Pythonu.[Unit] Description=Example Service [Service] Type=simple ExecStart=/usr/bin/python -m SimpleHTTPServer 8080 [Install] WantedBy=multi-user.target
Krok 2: Konfigurace automatického restartu
Pro konfiguraci automatického restartu služby přidejte do sekce [Service]
konfiguračního souboru .service
direktivy Restart
a RestartSec
. Direktiva Restart
určuje, kdy má být služba automaticky restartována. Hodnota on-failure
například indikuje, že restart má proběhnout pouze pokud služba skončí s chybou (ne s úspěchem nebo signalizací).
-
Přidejte následující řádky do sekce
[Service]
vašeho.service
souboru:Restart=on-failure RestartSec=5s
RestartSec
určuje časový interval (v sekundách), který systemd počká před restartem služby. -
Soubor uložte a zavřete.
Krok 3: Aktivace a testování služby
Po konfiguraci automatického restartu je potřeba službu znovu načíst, aby systemd převzal nové nastavení.
- Načtěte novou konfiguraci systému:
sudo systemctl daemon-reload
- Spusťte službu:
sudo systemctl start example.service
- Nastavte službu, aby se spouštěla při startu systému:
sudo systemctl enable example.service
- Pro testování chování služby můžete službu násilně ukončit a pozorovat, zda se restartuje:Použijte příkaz
sudo systemctl status example.service
pro ověření stavu služby.sudo systemctl kill example.service
V tomto článku jsme prošli základními kroky pro nastavení automatického restartu služby v CentOS 7 pomocí systemd. Tato funkcionalita je klíčová pro zajištění vysoké dostupnosti a spolehlivosti systémových služeb. Při správném nastavení může systemd automaticky obnovit služby po jejich selhání, což minimalizuje dobu nefunkčnosti a zvyšuje celkovou odolnost systému.