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.
1. Použití systemd service
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
2. Alternativní metoda: Použití crontab
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.
Shrnutí
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é.