Automatické spouštění programů na Raspberry Pi

30.05.2023 Raspberry Pi #raspeberrypi #cron

Základní popis plánovaného spouštění programů na RbPI s využitím klasického programu CRON.


Co je cron?

Cron je výchozí nástroj pro plánovač úloh v operačních systémech založených na Linuxu, jako je OS Raspberry Pi. Je to perfektní nástroj pro tuto aplikaci, protože dokáže spouštět programy a skripty shellu při startu nebo v pravidelných intervalech. Cron je široce používán při automatizaci opakujících se úkolů, jako je odesílání zpráv o datech senzorů, denní aktualizace počasí, zalévání rostlin atd.

Jak spustit program při startu Raspberry Pi?

1. Nejprve otevřete crontab pomocí příkazu níže.

sudo crontab -e

Crontab umožňuje prohlížet a upravovat soubor cron tabulky. Soubor tabulky cronu je seznam naplánovaných úloh pro konkrétního uživatele na zařízení, včetně uživatele root.

2. Dále zvolte textový editor. Lze například používat editor NANO.

3. Na konec souboru přidejte program, který chcete spustit při startu.

@reboot python3 /home/pi/filename.py

Pro spuštění programu, při bootování musí mít řádek @reboot na začátku. Poté můžete přidat cokoli, co potřebujete. V našem příkladu spustíme program python3, abychom spustili interpret python3, za kterým následuje cesta skriptu.

4. Nakonec uložte a ukončete.

Stává se, že příkaz reboot neproběhne. Potom zkuste přidat direktivu time:

@reboot sleep 60 && python3 /home/pi/filename.py

Spuštění programu při spuštění vyžaduje, abyste měli potřebná oprávnění ke spuštění aplikace a souboru. Můžete zkontrolovat pomocí ls -l. V opačném případě pro přidání oprávnění zadejte sudo chmod a+x FILENAME.

Jak spouštět program v pravidelných intervalech?

1. Otevřete crontab.

 sudo crontab -e

Vyberte textový editor.

3. Přidejte naplánovanou úlohu.

Na poslední řádek souboru se vložit např. následující.

# m h dom mon dow command

Rozvržení pro záznam cronu má šest složek: minutu (m), hodinu (h), den v měsíci (dom), měsíc v roce (mon), den v týdnu (dow) a příkaz, který má být vykonán (command).

# * * * * *  command to execute
# ┬ ┬ ┬ ┬ ┬
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ └───── day of week (0 - 7) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
# │ │ │ └────────── month (1 - 12)
# │ │ └─────────────── day of month (1 - 31)
# │ └──────────────────── hour (0 - 23)
# └───────────────────────── min (0 - 59)

Předpokládejme například, že chcete spustit program s názvem filename.py každý den v 15:00. Záznam by vypadal takto:

15 0 * * *  python3 /home/pi/filename.py

Uložte a ukončete.

5. Chcete-li zobrazit aktuálně naplánované úlohy, zadejte následující příkaz:

crontab -l