Raspberry Pi on võimas SBC (üheplaadiline arvuti), mida saate kasutada mitmesuguste rakenduste ja projektide jaoks. Selle mitmekülgsus seisneb võimes käivitada igasuguseid programme, sealhulgas kohandatud skripte, tänu osaliselt Raspberry Pi OS-ile ja teistele Linuxi-põhistele opsüsteemidele, mida see käitab.
Raspberry Pi-l skripti või programmi käivitamine on sama lihtne kui selle süsteemist leidmine ja käivitamine. Aga mis siis, kui soovite seda protsessi automatiseerida, võib-olla seetõttu, et teie projekt seda nõuab või soovite oma töövoogu sujuvamaks muuta?
Üks vastus sellele on systemd kasutamise õppimine.
Mis on Systemd?
systemd on süsteemikomponentide komplekt teenuse konfigureerimiseks ja käitumiseks kaasaegsetes Linuxi süsteemides. Seda samastatakse a-ga PID (protsessi identifikaator) 1-st, kuna see on esimene protsess süsteemi käivitamisel. Üldiselt on systemd eesmärk aidata teil süsteemi käivitamisel programme hallata ja käivitada. Ja seda saate kasutada programmi käivitamisel Pi käivitamisel.
Nagu algselt mainitud, on Linuxi süsteemide käivitamisel programmide käivitamiseks mitu meetodit, näiteks rc.local, cron ja automaatne käivitamine. Kuid süsteemd juhtub partii parema lahendusega, kui soovite käivitada GUI (graafiline kasutajaliides) programmid, automatiseerige rakendused töötama pärast teatud süsteemiprotsesside algust või käivitage programme ikka ja jälle kuni teie ajastamiseni töötab.
Seotud: Kuidas planeerida ülesandeid Linuxis Croni ja Crontabi abil
Kuidas kasutada systemd programmi käivitamisel käivitamisel
systemd on veidi keerulisem meetod programmide käivitamiseks käivitamisel Linuxi süsteemides. Kuid ajakava paindlikkus, mida see pakub teiste meetodite suhtes - eespool mainitud meetodid - kaalub üles selle keerukuse igas aspektis.
Systemd-meetod kasutab üksusfaile, mis on umbes nagu .ini-failid, mis sisaldavad seadmete, teenuste, pistikupesade, käivitamise sihtmärgi ja muude süsteemi oluliste komponentide kodeerimisteavet.
Ühikfaile on erinevat tüüpi. Niisiis, vastavalt sellele, millist ressurssi soovite deklareerida, peate vastavalt sellele valima ühikutüübi faili. Selle juhendi jaoks jääme siiski .service üksuse failide juurde, mis võimaldavad teil hallata süsteemis olevate programmide ja skriptide käivituskäitumist.
Allpool on toodud skript / programmi käivitamise etapid jaotises systemd kasutades.
Teenuse loomine
Oma programmi käivitamisel käivitamiseks looge teenuseüksuse fail, mis ütleb systemd-le, millist programmi ja millal käivitada. Siit saate teada, kuidas seda teha.
- Sisestage aknas CLI sudo nano /lib/systemd/system/display.service. Oma teenuse jaoks võite kasutada mis tahes nime, kui see lõpeb laiendiga .service.
- Kleepige teenusefaili järgmised koodiread:
[Üksus]
Kirjeldus = PiCounter
Pärast = võrk.sihtmärk
[Teenus]
ExecStart = / usr / bin / python3 /home/pi/PiCounter/display.py
Taaskäivita = alati
Kasutaja = pi
[Install]
WantedBy = mitmeotstarbeline.sihtmärk
Kõik teie tavalised konfiguratsioonivõimalused kuuluvad Ühik ja Installige jaotised, samas kui teenuspõhised seadistusvõimalused lähevad jaotise Teenus alla.
Mõned ülaltoodud direktiivi-väärtuste paarid, mida peate võib-olla muutma, hõlmavad järgmist:
i. Pärast: See määrab, millal teenust alustada. Selle seadistamine võrk.sihtmärk tagab, et loetletud väärtus - antud juhul network.target - algab enne praeguse üksuse alustamist. Kuid see ei juhi teenuse sõltuvussuhet käivitama; seda tehakse teiste direktiivide kaudu, nagu Wants, Requires ja WantedBy.
Muidugi saate seda väärtust projekti nõuetele vastavalt muuta. Näiteks kui soovite, et teie programm käivitataks pärast seda, kui teie Raspberry Pi ühendub võrguga, saate kasutada network-online.target väärtus. Võite viidata Fedora dokumentatsioon systemd kohta nende väärtuste kohta lisateabe saamiseks.
ii. ExecStart: See sisaldab absoluutset teed ja programmi / skripti nime, mille soovite käivitamisel käivitada. Nii et sõltuvalt sellest, mida soovite täita, peate lisama mõlema direktiivi jaoks väärtused.
iii. Kasutaja: See tuvastab teie Raspberry Pi nime. Kui olete oma Pi nime muutnud, peate selle väärtuse kasutaja jaoks määrama.
iv. WantedBy: See on kõige tavalisem viis üksuse päästiku määramiseks. Selle seadmisega mitmeotstarbeline.sihtmärk, saate luua sõltuvussuhte, mis käivitab programmi, kui süsteemi juhtelement antakse mitme kasutaja kestale.
Veelgi enam, see käivitab teie programmi ka enne Pi X-Windowsi süsteemi käivitamist, mis tähendab, et teie programm töötab isegi enne süsteemi sisselogimist. Kui soovite, et enne Raspberry Pi-sse sisselogimist käivitataks skript, võimaldab see teil seda teha.
Ülaltoodud koodiread töötavad mitte-GUI-programmide jaoks. Kui soovite siiski GUI-programmi käivitada, kasutades systemd, peaksite oma teenusefaili lisama järgmise koodi:
[Üksus]
Kirjeldus = PiCounter
Pärast = võrk.sihtmärk
[Teenus]
Keskkond = Kuva =: 0
Keskkond = XAUTHORITY / home / pi / .Volitus
ExecStart = / usr / bin / python3 /home/pi/PiCounter/display.py
Taaskäivita = alati
[Install]
WantedBy = mitmeotstarbeline.sihtmärk
Ülaltoodud direktiivi-väärtuste paaris on muudmiseks vaja ainult väärtust ExecStart direktiiv. Asendage koodilukku kuuluv programm programmiga, mida soovite käivitamisel käivitada. Kui olete teenusefaili asustanud, vajutage CTRL + O selle salvestamiseks.
Testige teenust
Kui teenus on valmis, kontrollige, kas see töötab, käsitsi. Selleks tippige terminali järgmine käsk: sudo systemctl start display.service. Teenus peaks teie juhised edukalt täitma.
Kui see juhtub, lõpetage see sudo systemctl stop display.service.
Luba teenus
Kui teil õnnestus teenust kasutades oma programm edukalt käivitada, on aeg see lubada, et see käivitaks teie programmi automaatselt iga kord, kui teie Raspberry Pi käivitate.
Selleks tippige sudo systemctl lubab display.service'i terminaliaknas. Ja kui see on tehtud, sisestage sudo taaskäivitage oma Pi taaskäivitamiseks.
Kui teie Raspberry Pi on käivitunud, peaks systemd teie programmi käitama vastavalt teie juhistele.
Programmi käivitamise automatiseerimine Raspberry Pi käivitamisel
Nagu enamik Linuxi süsteeme, võimaldab ka Raspberry Pi OS teil teha toiminguid mitmel viisil ja see kehtib ka programmi käivitamise ajastamise osas. Seega, kui soovite käivitamisel käivitada GUI-programmid / skriptid ja soovite oma ajastamise üle paremat kontrolli, on systemd selgelt parem meetod.
See tähendab, et kui soovite lihtsamat lahendust või kui teie projekti nõuded nõuavad konkreetset ajastamist, võite vaadata meie juhendit Raspberry Pi programmi või skripti käivitamine käivitamisel rohkem teada saada.
Kas soovite oma Raspberry Pi-st rohkem kasu saada? Siin on palju kasulikke käske Pi terminalis navigeerimiseks ja GPIO tihvtide programmeerimiseks.
Loe edasi
- Isetegemine
- Vaarika Pi
Yash on MUO isetegijate, Linuxi, programmeerimise ja turvalisuse personalikirjanik. Enne kirest kirjas leidmist töötas ta veebi ja iOS-i jaoks. Tema kirjutise leiate ka TechPP-st, kus ta kajastab muid vertikaale. Lisaks tehnikale meeldib talle rääkida astronoomiast, vormel 1-st ja vaadata.
Telli meie uudiskiri
Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!
Veel üks samm !!!
Palun kinnitage oma e-posti aadress meilis meile, mille me just saatsime.