The cart is empty

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.

  1. Otevřete nový konfigurační soubor pomocí příkazu:
    sudo nano /etc/systemd/system/example.service
    ​
  2. Vložte do souboru následující obsah:
    [Unit]
    Description=Example Service
    
    [Service]
    Type=simple
    ExecStart=/usr/bin/python -m SimpleHTTPServer 8080
    
    [Install]
    WantedBy=multi-user.target
    ​
    Tento příklad vytvoří službu, která spustí jednoduchý HTTP server na portu 8080 pomocí Pythonu.

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í).

  1. 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.

  2. 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í.

  1. Načtěte novou konfiguraci systému:
    sudo systemctl daemon-reload
    ​
  2. Spusťte službu:
    sudo systemctl start example.service
    ​
  3. Nastavte službu, aby se spouštěla při startu systému:
    sudo systemctl enable example.service
    ​
  4. 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.