Ako spustiť skript pri štarte na malinovej pi?
1. Vytvorte súbor a.service pre svoj skript.
2. Skopírujte súbor do / etc / systemd / system.
3. Spustením služby otestujte skript.
4. Použite systemctl na spustenie pri štarte.

Či už sa jedná o multimediálne centrum, webový server, hernú konzolu alebo jednoducho o počítač, existuje nespočetné množstvo dôvodov, prečo budete potrebovať automatické spustenie konkrétneho programu alebo skriptu po zavedení systému Raspberry Pi. Táto príručka vás naučí, ako vynútiť spustenie skriptu v čase zavádzania buď jeho pridaním ako služby (pred načítaním pracovnej plochy), alebo jej pridaním do súboru automatického spustenia (po načítaní pracovnej plochy).
Metóda 1 z 2: pridanie skriptu ako služby
- 1Vytvorte pre svoj skript súbor a.service. Táto metóda vás naučí, ako vytvoriť službu, ktorá spustí váš skript pri štarte pred spustením LXDE. Ak skript vyžaduje závislosti, ktoré nie sú aktívne okamžite (napríklad sieťové pripojenie alebo čokoľvek iné), služba oznámi vášmu skriptu, aby počkal, kým sa tieto procesy načítajú. Vytvorte súbor (nazvaný scriptname.service), ktorý sleduje túto štruktúru a podľa potreby nahradí cesty a popis:
[Jednotka]
Popis = Moja služba
After = network-online.target
[Služba] ExecStart = / usr / bin / python3 -u main.py
WorkingDirectory = / home / pi / myscript
StandardOutput = dediť
StandardError = inherit
Reštart = vždy
Užívateľ = pi
[Inštalácia]
WantedBy = multi-user.target
- 2Skopírujte službu do / etc / system / system. Budete to musieť urobiť ako root, takže použite sudo. Tu je príklad:
- sudo cp myscript.service /etc/systemd/system/myscript.service
- 3Službu otestujte spustením. Pred nastavením automatického spustenia služby sa budete musieť uistiť, že skript po spustení funguje správne. Ak chcete spustiť skript prostredníctvom služby, použijete tento systemctl príkaz:
- sudo systemctl start myscript.service
- V prípade potreby môžete zastaviť službu spustením rovnaký príkaz, nahradí start sa stop.
- 4Nastavte službu tak, aby sa spúšťala pri štarte. Pokiaľ sa skript vykoná bez chyby, môžete spustiť príkaz, ktorý zabezpečí spustenie skriptu pri štarte:
- sudo systemctl enable myscript.service

Metóda 2 z 2: použitie súboru automatického spustenia
- 1Pochopte požiadavky a ako to funguje. Táto metóda vyžaduje desktopové prostredie PIXEL s najnovšou verziou operačného systému Raspbian. Dosahuje sa to úpravou súboru „autostart“, ktorý spúšťa príkazy pri štarte v desktopovom prostredí LXDE, čo je rámec, na ktorom je postavený desktop PIXEL spoločnosti Raspberry Pi. Táto metóda sa uprednostňuje v scenároch, kde:
- Váš skript vyžaduje na spustenie prostredie pracovnej plochy
- Váš skript musí byť spustený z okna terminálu
- Chcete určiť, pre ktorých používateľov sa skript automaticky spustí
- 2Otvorte súbor automatického spustenia v nano textovom editore. V novom okne terminálu spustite nasledujúci príkaz:
- sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
- 3Pomocou klávesov so šípkami prejdite na koniec druhého riadku a stlačte ↵ enter. Týmto sa nad @xscreensaver -no-splash položkou vytvorí nový riadok. Mnoho používateľov uviedlo, že príkazy pridané pod tento riadok sa nespúšťajú úspešne, takže je bežné pridať svoje vlastné príkazy nad @xscreensaver položku.
- 4Pridajte príkaz na spustenie skriptu. Toto je miesto, kde máte najviac možností, pretože môžete zadať ľubovoľný príkaz terminálu, ktorý by ste normálne použili na spustenie skriptu. Ak chcete napríklad spustiť bash skript s názvom "myscript.sh", ktorý sa nachádza v domovskom adresári užívateľa "pí" dalo by sa zadaním príkazu: /home/pi/myscript.sh. Rovnako, ak sú na spustenie skriptu potrebné povolenia superužívateľa, môžete pred príkazom dokonca predsloviť sudo.
- 5Zahrňte úplné cesty ku každému názvu súboru. Napríklad na spustenie skriptu Python, ktorý vyžaduje oprávnenie superužívateľa s názvom „myscript.py“, ktorý je umiestnený v domovskom adresári používateľa „pi“, by ste zadali úplnú cestu k samotnému skriptu Python aj k interpretovi Pythonu, napríklad ako sudo /usr/bin/python /home/pi/myscript.py.Ak už nechcete, aby sa váš skript spúšťal pri štarte, jednoducho znova upravte súbor automatického spustenia, iba tentokrát vymažte riadky, ktoré ste pridali predtým.
- 6Rozhodnite sa, či chcete pri spustení spustiť skript v novom okne terminálu. Na tento účel môžete použiť @lxterminal príkaz s -e modifikátorom, za ktorým nasleduje úplná cesta k vášmu skriptu v úvodzovkách. Napríklad:
@lxterminal -e "/home/pi/myscript.sh"
- Týmto sa skript vykoná z nového okna terminálu.
- 7Skript spustíte zadaním správnych príkazov. Po zadaní stlačte Ctrl+ X a potom uložte zmeny podľa pokynov na obrazovke.
- Ak už nechcete, aby sa váš skript spúšťal pri štarte, jednoducho znova upravte súbor automatického spustenia, iba tentokrát vymažte riadky, ktoré ste pridali predtým. Po uložení a ukončení sa skript po spustení už nebude automaticky spúšťať.
- 8Reštartujte a otestujte. Používa sa sudo reboot na reštartovanie vášho Raspberry Pi. Ak skript funguje tak, ako bol navrhnutý, spustí sa jeden, ktorý sa spustí správcom okien.