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

Toto je starší verze dokumentu!


Automatické spouštění skriptů po startu systému

V minulosti bylo běžné nastavovat akce po spuštění systému pomocí souboru /etc/rc.local. Pokud však používáte moderní distribuci Linuxu, jako je Xubuntu nebo Raspberry Pi OS (Debian-based distribuce), pravděpodobně jste zjistili, že tento soubor již neexistuje nebo není funkční.

Důvodem je přechod na nový inicializační systém systemd, který nabízí robustnější a flexibilnější způsob správy služeb. Pokud potřebujete nastavit automatické spouštění vlastních skriptů po startu systému, zde jsou dvě doporučené metody.

Systemd umožňuje vytvoření vlastní služby, která se spustí při startu systému.

Postup vytvoření služby:

Otevřete terminál a vytvořte nový soubor služby:

sudo nano /etc/systemd/system/moje_sluzba.service

Do souboru vložte následující konfiguraci:

[Unit]
Description=Můj startovací skript
After=network.target
 
[Service]
ExecStart=/cesta/k/mojemu_skriptu.sh
Restart=always
User=root
 
[Install]
WantedBy=multi-user.target
  • Nahraďte /cesta/k/mojemu_skriptu.sh cestou ke svému skriptu.
  • User=root zajistí, že se skript spustí pod rootem (můžete změnit na jiného uživatele).
  • Restart=always znamená, že služba bude automaticky restartována v případě pádu.

Ujistěte se, že je skript spustitelný:

sudo chmod +x /cesta/k/mojemu_skriptu.sh

Načtěte novou službu:

sudo systemctl daemon-reload

Povolte službu, aby se spouštěla při každém startu systému:

sudo systemctl enable moje_sluzba.service

Spusťte ji hned pro otestování:

sudo systemctl start moje_sluzba.service

Ověřte její stav:

sudo systemctl status moje_sluzba.service

Pokud chcete jen jednoduše spustit skript po startu systému bez vytváření služby, můžete použít cron.

Otevřete crontab pro uživatele root:

sudo crontab -e

Přidejte na konec souboru tento řádek:

@reboot /cesta/k/mojemu_skriptu.sh

Tím zajistíte, že se skript spustí při každém startu systému.

Metoda Výhody Nevýhody
systemd service Doporučený způsob, robustní správa, automatické restartování, kontrola stavu Vyžaduje vytvoření služby
crontab @reboot Jednoduché a rychlé Žádná správa služeb, horší debugová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é.

  • it/server/automaticke-spousteni-skriptu-po-startu-systemu.1739537605.txt.gz
  • Poslední úprava: 2025/02/14 12:53
  • autor: Petr Nosek