Uživatelské nástroje

Nástroje pro tento web


systemd

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
systemd [2017/01/16 16:20] – [Jednotka service] djbuldogsystemd [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 2: Řádek 2:
  
   * základem je jednotka.. je několik typů, například:   * základem je jednotka.. je několik typů, například:
-    * service - jednotka pro spouštění procesu +    * service - spouštění procesu (obdoba init skriptu) 
-    * target - jednotka, která obsahuje seznam jednotek vedoucích k požadovanému cíli (obdoba run level)+    * target - seznam jednotek service vedoucích k požadovanému cíli (obdoba run level
 +      * mělo by jít použít i jako skupinu služeb pro hromadné zapínání/vypínání 
 +    * timer - časovač k jednotce service (obdoba cron)
   * jednotka umí   * jednotka umí
     * restartovat při pádu, sledovat stav     * restartovat při pádu, sledovat stav
Řádek 40: Řádek 42:
     * ''is-active/is-enabled/is-failed'' - pro zjišťování stavu konkrétních jednotek můžeme použít příkaz      * ''is-active/is-enabled/is-failed'' - pro zjišťování stavu konkrétních jednotek můžeme použít příkaz 
       * Tyto příkazy navíc vrací jako návratový kód nulu, pokud je podmínka splněna pro alespoň jednu jednotku.        * Tyto příkazy navíc vrací jako návratový kód nulu, pokud je podmínka splněna pro alespoň jednu jednotku. 
 +      * pokud se služba terpve spouští, vrací is-active nenulovou hodnotu (tj. není aktivní) a vypisuje "activating"
 +      * služba může zobrazit i nečekaně stav "unknown" [[https://bugzilla.redhat.com/show_bug.cgi?id=1073481|diskuze]]
     * ''enable/disable'' - povolení či zakázání spouštění jednotky     * ''enable/disable'' - povolení či zakázání spouštění jednotky
     * ''daemon-reload'' - aktualizace konfiguračních souborů jednotek     * ''daemon-reload'' - aktualizace konfiguračních souborů jednotek
       * aktualizují se všechny jednotky       * aktualizují se všechny jednotky
       * musí se volat po každé změně jakékoliv jednotky       * musí se volat po každé změně jakékoliv jednotky
 +    * ''cat'' - zobrazí obsah souboru s jednotkou
 +    * ''show'' - kompletní výpis parametrů jednotky (uživatelské + default)
 +      * lze zjistit například čas startu procesu přes parametr ''ExecMainStartTimestamp''
 +      * pro výpis konkrétního parametru lze použít argument ''-p <paramname>''
  
   * umístění jednotek   * umístění jednotek
Řádek 66: Řádek 74:
       * Fork - předpokládá se, že spouštěný proces se ukončí a spustí jiný. Aby byla služba považována za aktivní, musí běžet aspoň jeden child       * Fork - předpokládá se, že spouštěný proces se ukončí a spustí jiný. Aby byla služba považována za aktivní, musí běžet aspoň jeden child
       * Oneshot - proces se spustí pouze jednorázově a skončí. Je možné nastavit, aby se služba tvářila po ukončení jako stále aktivní       * Oneshot - proces se spustí pouze jednorázově a skončí. Je možné nastavit, aby se služba tvářila po ukončení jako stále aktivní
 +    * ExecStartPre - co zavolat před spuštěním služby (může být použit opakovaně pro různé příkazy)
     * ExecStart - co zavolat pro spuštění služby     * ExecStart - co zavolat pro spuštění služby
     * ExecStop - co zavolat pro ukončení služby. Volá se i v případě, že služba je zabita nebo sama ukončena.     * ExecStop - co zavolat pro ukončení služby. Volá se i v případě, že služba je zabita nebo sama ukončena.
     * DefaultTimeoutStartSec a DefaultTimeoutStopSec přenastavit výchozí časy, nebo pro každou jednotku zvlášť pomocí TimeoutStartSec a TimeoutStopSec.     * DefaultTimeoutStartSec a DefaultTimeoutStopSec přenastavit výchozí časy, nebo pro každou jednotku zvlášť pomocí TimeoutStartSec a TimeoutStopSec.
 +    * EnvironmentFile
 +      * lze využít k načtení parametrů z konfiguračního souboru
 +      * který může být navíc modifikován příkazem v ExecStartPre (např. nastaví aktuální IP adresu)
 +      * například
 +        * vytvoří se ''/etc/sysconfig/myservice.cfg'' obsahující jen ''OPTIONS="--bind=192.168.1.10"''
 +        * a pak použije jako:
 +        <code>
 +[Service]
 +EnvironmentFile=/etc/sysconfig/myservice.cfg
 +ExecStart=/usr/bin/myservice ${OPTIONS}
 +        </code>
  
   * install   * install
Řádek 76: Řádek 96:
   * šablony - parametrické unity   * šablony - parametrické unity
     * Pokud v systemd pracujeme s jednotkou obsahující zavináč (ve tvaru jmeno@parametr.typ), je hledán soubor jmeno@.typ a pro odlišení konkrétní instance se použije parametr.     * Pokud v systemd pracujeme s jednotkou obsahující zavináč (ve tvaru jmeno@parametr.typ), je hledán soubor jmeno@.typ a pro odlišení konkrétní instance se použije parametr.
 +
 +
 +===== Jednotka timer =====
 +
 +  * ukládá se do souboru ''nazev.timer'', musí k ní vždy existovat service jednotka
 +  * dva typy
 +    *  Realtime timers
 +      * spouštění na základě skutečného času jako událost kalendáře (obdoba cron)
 +      * definuje se parametrem ''OnCalendar=''
 +    * Monotonic timers 
 +      * spouští se relativně k nějakému startovacímu bodu
 +        * Například OnBootSec, OnActiveSec
 +      * při uspání počítače se zastaví
 +      * definuje se parametrem ''OnTypeSec=''
 +
 +  * seznam aktivních časovačů lze vypsat příkazem
 +
 +  systemctl list-timers
 +  NEXT                         LEFT       LAST                         PASSED       UNIT                         ACTIVATES
 +  Sun 2017-12-03 11:00:59 CET  9min left  Sun 2017-12-03 10:01:46 CET  49min ago    anacron.timer                anacron.service
 +  Sun 2017-12-03 11:09:00 CET  17min left Sun 2017-12-03 10:39:04 CET  12min ago    phpsessionclean.timer        phpsessionclean.service
 +  Sun 2017-12-03 22:00:00 CET  11h left   Sun 2017-12-03 10:17:21 CET  34min ago    fstrim.timer                 fstrim.service
 +  Mon 2017-12-04 01:02:19 CET  14h left   Sun 2017-12-03 10:17:17 CET  34min ago    apt-daily.timer              apt-daily.service
 +  Mon 2017-12-04 06:04:13 CET  19h left   Sun 2017-12-03 06:59:46 CET  3h 51min ago apt-daily-upgrade.timer      apt-daily-upgrade.service
 +  Mon 2017-12-04 06:47:32 CET  19h left   Sun 2017-12-03 06:47:32 CET  4h 4min ago  systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
 +
 +  * Příklad s fstrim
 +    * pravidelné spouštění příkazu každou neděli v deset hodin
 +
 +  systemctl cat fstrim.service
 +  [Unit]
 +  Description=Discard unused blocks
 +  
 +  [Service]
 +  Type=oneshot
 +  ExecStart=/sbin/fstrim -a
 +
 +  systemctl cat fstrim.timer
 +  [Unit]
 +  Description=Discard unused blocks once a week
 +  Documentation=man:fstrim
 +  
 +  [Timer]
 +  #OnCalendar=weekly
 +  OnCalendar=Sun, 22:00
 +  AccuracySec=1h
 +  Persistent=true
 +  
 +  [Install]
 +  WantedBy=timers.target
  
 ===== Zdroje ===== ===== Zdroje =====
Řádek 90: Řádek 160:
       * https://www.freedesktop.org/software/systemd/man/systemd.unit.html       * https://www.freedesktop.org/software/systemd/man/systemd.unit.html
         * volby pro jednotku         * volby pro jednotku
 +  * http://jlk.fjfi.cvut.cz/arch/manpages/man/systemd.time.7.en
 +    * zadávání času, například do timer jhednotky
  
  
  
systemd.1484580007.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki