5. týždeň

Týždeň 5 – Procesy, systemd služby a plánovanie úloh

Prednáška

Ciele

    Po tejto prednáške budeš vedieť:
  1. analyzovať bežiace procesy a ich využitie zdrojov nad rámec základného prehľadu
  2. vytvoriť a spravovať vlastnú systemd jednotku (service unit)
  3. naplánovať pravidelné úlohy pomocou cron a systemd timers

Obsah

Procesy nad rámec základov

Základné príkazy na výpis procesov (ps, top) sa predpokladajú. Tento týždeň ideme hlbšie: ps aux --sort=-%cpu na zoradenie podľa záťaže, htop pre interaktívny prehľad, kill/killall/pkill na rôznych úrovniach (signály SIGTERM vs. SIGKILL a rozdiel v tom, ako sa proces správa), a strom procesov (pstree) na pochopenie rodič–dieťa vzťahov (napr. prečo „zombie“ proces zostáva v systéme).

Systemd jednotky

Systemd je dnes štandardný init systém väčšiny distribúcií. Vlastná služba sa definuje ako .service súbor v /etc/systemd/system/ s časťami [Unit] (popis, závislosti), [Service] (príkaz na spustenie, typ – simple/forking/oneshot, správanie pri páde – Restart=on-failure) a [Install] (kedy sa má služba spustiť automaticky, napr. WantedBy=multi-user.target). Po vytvorení sa jednotka aktivuje systemctl daemon-reload, systemctl enable --now <jednotka>.

Plánovanie úloh

cron je klasický nástroj na pravidelné spúšťanie úloh (crontab -e, syntax minúta hodina deň mesiac deň_v_týždni príkaz). Systemd timers sú modernejšia alternatíva – .timer jednotka spúšťa priradenú .service jednotku podľa harmonogramu, s výhodou lepšieho logovania (cez journalctl) a možnosti spustiť zameškanú úlohu po reštarte (Persistent=true).

Praktické príklady a demonštrácie

  • Ukážka vytvorenia jednoduchej systemd .service jednotky, ktorá spustí skript, a jej porovnanie s ekvivalentným riešením cez cron @reboot.
  • Rozbor výstupu pstree a identifikácia „zombie“ procesu.

Čo si zapamätaj

  • Ako vytvoriť a aktivovať vlastnú systemd .service jednotku.
  • Rozdiel medzi cron a systemd timers.
  • Rozdiel medzi SIGTERM a SIGKILL.

Zdroje

  • man systemd.service, man crontab, man systemd.timer.