it:server:automaticke-spousteni-skriptu-po-startu-systemu

Rozdíly

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

Odkaz na výstup diff

it:server:automaticke-spousteni-skriptu-po-startu-systemu [2025/02/14 12:53] – vytvořeno Petr Nosekit:server:automaticke-spousteni-skriptu-po-startu-systemu [2025/02/15 09:14] (aktuální) Petr Nosek
Řádek 92: Řádek 92:
  
 Doporučujeme **systemd**, protože je spolehlivější a lépe integrovaný do moderních distribucí Linuxu. Pokud však hledáte jednoduché řešení, ''crontab @reboot'' může být dostatečné. Doporučujeme **systemd**, protože je spolehlivější a lépe integrovaný do moderních distribucí Linuxu. Pokud však hledáte jednoduché řešení, ''crontab @reboot'' může být dostatečné.
 +
 +
 +===== Použití /etc/rc.local v systemd =====
 +
 +V systému se stále můžeme spoléhat na **/etc/rc.local** pro spouštění vlastních skriptů při startu. **systemd** kontroluje existenci tohoto souboru a pokud existuje, automaticky ho zařadí do spouštěných služeb pomocí **systemd-rc-local-generator**.
 +
 +==== Jak ověřit dostupnost systemd-rc-local-generator ====
 +
 +**systemd-rc-local-generator** je součástí systemd a vytváří službu `rc-local.service`, která umožňuje spouštění `/etc/rc.local`. Ne všechny distribuce jej však mají povolený.
 +
 +Zkontrolujte jeho přítomnost v systému pomocí:
 +
 +<code bash>
 +systemd-analyze dump | grep systemd-rc-local-generator
 +</code>
 +
 +nebo:
 +
 +<code bash>
 +ls -l /usr/lib/systemd/system-generators/systemd-rc-local-generator
 +</code>
 +
 +(Podle distribuce může být umístěn i v `/lib/systemd/system-generators/`.)
 +
 +Pokud existuje, znamená to, že je součástí systemd a můžeme ho využít.
 +
 +==== Aktivace /etc/rc.local v systemd ====
 +
 +1. Ujistěte se, že soubor existuje a je spustitelný:
 +
 +<code bash>
 +sudo touch /etc/rc.local
 +sudo chmod +x /etc/rc.local
 +</code>
 +
 +2. Přidejte do něj požadované příkazy, například:
 +
 +<code bash>
 +sudo nano /etc/rc.local
 +</code>
 +
 +A vložte:
 +
 +<code>
 +#!/bin/bash
 +echo "Spuštěno při bootu" > /tmp/test.log
 +exit 0
 +</code>
 +
 +Uložte soubor a zavřete editor.
 +
 +3. Ověřte stav služby:
 +
 +<code bash>
 +systemctl status rc-local
 +</code>
 +
 +Pokud není aktivní, povolte ji:
 +
 +<code bash>
 +sudo systemctl enable rc-local
 +</code>
 +
 +A spusťte ji ručně:
 +
 +<code bash>
 +sudo systemctl start rc-local
 +</code>
 +
 +==== Co dělat, pokud systemd-rc-local-generator chybí? ====
 +
 +Pokud v systému **systemd-rc-local-generator** není k dispozici, může být zakázán při kompilaci systemd v dané distribuci. V takovém případě je možné vytvořit vlastní unit soubor pro `/etc/rc.local`:
 +
 +1. Vytvořte nový unit soubor:
 +
 +<code bash>
 +sudo nano /etc/systemd/system/rc-local.service
 +</code>
 +
 +2. Vložte následující obsah:
 +
 +<code ini>
 +[Unit]
 +Description=/etc/rc.local Compatibility
 +ConditionPathExists=/etc/rc.local
 +After=network.target
 +
 +[Service]
 +Type=forking
 +ExecStart=/etc/rc.local start
 +TimeoutSec=0
 +RemainAfterExit=yes
 +GuessMainPID=no
 +
 +[Install]
 +WantedBy=multi-user.target
 +</code>
 +
 +3. Aktivujte službu:
 +
 +<code bash>
 +sudo systemctl enable rc-local
 +sudo systemctl start rc-local
 +</code>
 +
 +Tímto způsobem lze dosáhnout stejné funkcionality i v případě, že systemd-rc-local-generator chybí.
 +
  
  • it/server/automaticke-spousteni-skriptu-po-startu-systemu.1739537605.txt.gz
  • Poslední úprava: 2025/02/14 12:53
  • autor: Petr Nosek