systemd je správce systému a služeb používaný v řadě linuxových distribucí. Mimo jiné spouští procesy podle jejich konfigurace, sleduje jejich stav a umožňuje je spravovat jako jednotky. Služba systemd není samotný Python nebo aplikace: popisuje, jak a za jakých podmínek se má příslušný program spustit a spravovat.
Jednotky, služby a závislosti
Konfigurace je rozdělená do jednotek, anglicky units. Jednotka s příponou .service popisuje službu, jiné druhy mohou představovat například časovač nebo zásuvku. Vedle příkazu ke spuštění lze nastavit účet, pracovní adresář, prostředí a způsob reakce na ukončení. Dostupné možnosti a jejich výchozí hodnoty je vhodné ověřit pro používanou verzi systému.
Pořadí spouštění a závislosti nejsou zaměnitelné. Předpis After= vyjadřuje pořadí vůči jiné jednotce, pokud jsou obě spouštěny; sám o sobě neznamená, že se druhá jednotka také automaticky spustí nebo že je vzdálené API dostupné. Aplikace proto musí stále počítat s výpadky sítě a chybnými odpověďmi.
Modelový worker jako služba
Následuje zjednodušený příklad pro existujícího uživatele a předem připravený program. Cesty i názvy jsou ilustrační; soubor službu sám nenainstaluje a před použitím vyžaduje úpravu podle prostředí:
[Unit]
Description=Ukazkovy worker
After=network.target
[Service]
User=worker
WorkingDirectory=/srv/example-worker
ExecStart=/srv/example-worker/.venv/bin/python /srv/example-worker/worker.py
Restart=on-failure
RestartSec=10s
[Install]
WantedBy=multi-user.targetExecStart určuje příkaz, Restart=on-failure požaduje restart při určitých typech selhání a RestartSec nastavuje prodlevu. Účet, cesty i interpretr musejí existovat a mít potřebná oprávnění. Restart procesu neopraví chybnou konfiguraci ani sám nezaručí, že rozpracovaná úloha nebude provedena dvakrát.
Spustit a povolit jsou odlišné kroky
Příkaz systemctl start example-worker.service službu spustí nyní. systemctl enable example-worker.service nastavuje vazby pro budoucí automatické spuštění, ale samotné povolení bez další volby obvykle službu ihned nespustí. systemctl status example-worker.service zobrazí stav a základní diagnostiku. Správa systémových služeb zpravidla vyžaduje odpovídající oprávnění.
Po úpravě souboru jednotky je potřeba načíst změněnou konfiguraci správcem služeb, typicky příkazem systemctl daemon-reload. Změna konfigurace automaticky nepřepíše již běžící proces; podle situace je nutné službu znovu spustit. Na vlastním stroji je vhodné po změně ověřit stav i log a mít možnost obnovit předchozí konfiguraci.
Výpis stavu pomáhá rozlišit, zda je konfigurace načtená, služba právě běží a zda byla povolena pro automatický start. Tyto údaje odpovídají na odlišné otázky. Služba může být například spuštěná ručně, přesto po restartu automaticky nenaběhne. Před použitím příkazů je nutné zvolit správnou systémovou nebo uživatelskou instanci správce služeb.
Logy, dostupnost a omezení
Výstup služby může být dostupný přes systémový journal, například příkazem journalctl -u example-worker.service. Rozsah a uchovávání záznamů závisí na konfiguraci systému. Log by neměl obsahovat hesla nebo tokeny a jeho velikost je zvlášť důležitá na malém úložišti.
Aktivní služba nemusí znamenat úspěšné zpracování práce. Proces může běžet a současně opakovaně selhávat při komunikaci s API. Provozní přehled proto potřebuje i údaje o dokončených úlohách, chybách a posledním úspěchu. Naopak krátkodobá chyba sítě nemusí vyžadovat úplný restart celého systému.
V článku z listopadu 2026 je systemd použito pro automatické spuštění Python workera na Raspberry Pi. SSH a lokální dashboard slouží ke správě a sledování; nejsou podmínkou nepřetržitého běhu workera. Starší samostatný autorský článek o systemd v prohledaném archivu nebyl doložen.
Z archivu 404M
- Chtěl jsem si pronajmout VPS. Nakonec mám domací dedikovaný server za 2 840 Kč (10. 11. 2026) — Konkrétní Python worker na Raspberry Pi běží jako služba systemd a spouští se po restartu nezávisle na otevřeném SSH.