Raspberry Pi on tehokas SBC (single board computer), jota voit käyttää erilaisiin sovelluksiin ja projekteihin. Sen monipuolisuus on kyvyssä käyttää kaikenlaisia ​​ohjelmia, mukaan lukien mukautetut komentosarjat, osittain Raspberry Pi OS: n ja muiden Linux-pohjaisten käyttöjärjestelmien ansiosta.

Komentosarjan tai ohjelman suorittaminen Raspberry Pi: llä on yhtä helppoa kuin löytää se järjestelmästä ja suorittaa se. Mutta entä jos haluat automatisoida tämän prosessin, ehkä siksi, että projektisi vaatii sitä tai koska haluat virtaviivaistaa työnkulkua?

Yksi vastaus tähän on oppia käyttämään systemd.

Mikä on Systemd?

systemd on sarja järjestelmäkomponentteja palvelun konfigurointiin ja käyttäytymiseen nykyaikaisissa Linux-järjestelmissä. Se on identifioitu a PID (prosessin tunniste) 1: stä, koska se on ensimmäinen prosessi, joka käynnistyy järjestelmän käynnistyksen yhteydessä. Kaiken kaikkiaan systemd: n tarkoitus on auttaa sinua hallitsemaan ja suorittamaan ohjelmia järjestelmän käynnistyessä. Ja se on se, mitä hyödynnät käynnistääksesi ohjelman Pi: n käynnistyksen yhteydessä.

instagram viewer

Kuten alun perin mainittiin, ohjelmien ajamiseksi käynnistettäessä Linux-järjestelmissä on useita tapoja, kuten rc.local, cron ja automaattinen käynnistys. Systemd kuitenkin tapahtuu erän paremmalle ratkaisulle, jos haluat käynnistää GUI (graafinen käyttöliittymä) -ohjelmat, automatisoi sovellukset toimimaan tiettyjen järjestelmäprosessien alkamisen jälkeen tai aja ohjelmia uudestaan ​​ja uudestaan ​​ajoitukseen toimii.

Liittyvät: Kuinka ajoittaa tehtävät Linuxissa Cronin ja Crontabin avulla

Kuinka käyttää systemd: tä ohjelmien käynnistämiseen käynnistyksen yhteydessä

systemd on hieman monimutkaisempi tapa käynnistää ohjelmia käynnistettäessä Linux-järjestelmissä. Sen tarjoama aikataulutuksen joustavuus muihin menetelmiin - jotka olemme edellä maininneet - ylittää kuitenkin sen monimutkaisuuden kaikilta osin.

Systemd-menetelmä käyttää yksikkötiedostoja, jotka ovat eräänlaisia ​​.ini-tiedostoja, jotka sisältävät koodaustietoja laitteista, palveluista, pistorasioista, käynnistyskohteista ja muista tärkeistä järjestelmän komponenteista.

Yksikkötiedostot ovat erityyppisiä. Joten sinun on valittava ilmoitettavan resurssin perusteella yksikkötiedostotyyppi vastaavasti. Tämän oppaan tarkoituksessa pidämme kuitenkin kiinni .service-yksikkötiedostoista, joiden avulla voit hallita järjestelmän ohjelmien ja komentosarjojen käynnistyskäyttäytymistä.

Alla on erittely vaiheista, jotka liittyvät komentosarjan / ohjelman käynnistämiseen käynnistyksen yhteydessä systemd: n avulla.

Palvelun luominen

Voit asettaa ohjelman suorittamaan käynnistyksen yhteydessä luomalla palveluyksikkötiedoston, joka kertoo systemd: lle, mikä ohjelma suoritetaan ja milloin. Näin voit tehdä sen.

  1. Kirjoita CLI-ikkunaan sudo nano /lib/systemd/system/display.service. Voit käyttää mitä tahansa nimeä palvelussasi, kunhan se päättyy .service-laajennukseen.
  2. Liitä palvelutiedostoon seuraavat koodirivit:
    [Yksikkö]
    Kuvaus = PiCounter
    Jälkeen = verkko.kohde
    [Palvelu]
    ExecStart = / usr / bin / python3 /home/pi/PiCounter/display.py
    Käynnistä uudelleen = aina
    Käyttäjä = pi
    [Asentaa]
    WantedBy = monikäyttäjän kohde

Kaikki yleiset määritysvaihtoehdot kuuluvat Yksikkö ja Asentaa osiot, kun taas palvelukohtaiset määritysvaihtoehdot ovat Palvelu-osiossa.

Muutamia yllä mainituista direktiivi-arvo-pareista, joita sinun on ehkä muutettava, ovat:

i. Jälkeen: Se määrittää, milloin palvelu aloitetaan. Asetetaan verkko.kohde varmistaa, että lueteltu arvo - tässä tapauksessa network.target - alkaa ennen nykyisen yksikön aloittamista. Se ei kuitenkaan ohjaa palvelun käynnistämään riippuvuussuhdetta; se tehdään muiden direktiivien, kuten Wants, Requires ja WantedBy, kautta.

Tietenkin voit muuttaa tätä arvoa vastaamaan projektisi vaatimuksia. Esimerkiksi, jos haluat ohjelman suorittavan sen jälkeen, kun Raspberry Pi on muodostanut yhteyden verkkoon, voit käyttää network-online.target arvo. Voit viitata Fedoran dokumentaatio systemd: stä oppia lisää näistä arvoista.

ii. ExecStart: Siinä on absoluuttinen polku ja ohjelman / komentosarjan nimi, jotka haluat suorittaa käynnistyksen yhteydessä. Joten riippuen siitä, mitä haluat suorittaa, sinun on lisättävä arvoja molemmille direktiiveille.

iii. Käyttäjä: Se tunnistaa vadelmasi Pi: n nimen. Jos olet muuttanut Pi: n nimeä, sinun on lisättävä tämä arvo käyttäjälle.

iv. WantedBy: Se on yleisin tapa määrittää yksikön liipaisin. Asettamalla sen arvoksi multi-user.target, voit luoda riippuvuussuhteen, joka suorittaa ohjelman, kun järjestelmäohjaus luovutetaan monen käyttäjän kuorelle.

Lisäksi tämä ajaa ohjelmasi ennen kuin Pi: n X-Windows-järjestelmä käynnistyy, mikä tarkoittaa, että ohjelma toimii jo ennen kuin kirjaudut järjestelmään. Jos haluat komentosarjan suorittavan ennen kirjautumista Raspberry Pi -laitteeseesi, voit tehdä sen.

Yllä olevat koodirivit toimivat muille kuin GUI-ohjelmille. Jos kuitenkin haluat suorittaa graafisen käyttöliittymän ohjelman systemd: n avulla, sinun on lisättävä seuraava koodi huoltotiedostoon:

[Yksikkö]
Kuvaus = PiCounter
Jälkeen = verkko.kohde
[Palvelu]
Ympäristö = Näyttö =: 0
Ympäristö = XAUTHORITY / home / pi / .Valtuus
ExecStart = / usr / bin / python3 /home/pi/PiCounter/display.py
Käynnistä uudelleen = aina
[Asentaa]
WantedBy = monikäyttäjän kohde

Yllä olevassa direktiivi-arvo-parissa sinun tarvitsee muuttaa vain arvon ExecStart direktiivi. Korvaa koodilohkon ohjelma ohjelmalla, jonka haluat suorittaa käynnistyksen yhteydessä. Kun olet täyttänyt palvelutiedoston, paina CTRL + O tallentaa sen.

Testaa palvelu

Kun palvelu on valmis, tarkista manuaalisesti, toimiiko se. Kirjoita tätä varten seuraava komento päätelaitteeseen: sudo systemctl Käynnistä näyttö. palvelu. Palvelun tulisi suorittaa ohjeesi onnistuneesti.

Kun se on, lopeta se sudo systemctl pysäytä näyttö. palvelu.

Ota palvelu käyttöön

Jos onnistut suorittamaan ohjelman onnistuneesti palvelun avulla, on aika ottaa se käyttöön niin, että se suorittaa ohjelman automaattisesti aina, kun käynnistät Raspberry Pi: n.

Voit tehdä tämän kirjoittamalla sudo systemctl salli display.service pääteikkunassa. Ja kun se on tehty, kirjoita sudo uudelleenkäynnistä Käynnistä Pi uudelleen.

Kun Raspberry Pi on käynnistynyt, systemd: n tulisi suorittaa ohjelmasi annettujen ohjeiden mukaisesti.

Ohjelman käynnistämisen automatisointi käynnistettäessä Raspberry Pi: llä

Kuten useimmat Linux-järjestelmät, Raspberry Pi OS: n avulla voit myös suorittaa toimintoja monin tavoin, ja se pysyy totta myös ohjelmien käynnistysten ajoituksesta. Joten, jos haluat käynnistää GUI-ohjelmia / komentosarjoja käynnistyksen yhteydessä ja haluat hallita paremmin aikataulutustasi, systemd on selvästi parempi menetelmä.

Siitä huolimatta, jos haluat yksinkertaisemman ratkaisun tai jos projektisi vaatimukset vaativat erityistä aikataulua, voit tarkistaa oppaamme Raspberry Pi -ohjelman tai komentosarjan suorittaminen käynnistyksen yhteydessä oppia lisää.

Sähköposti
Ultimate Raspberry Pi Commands -huijausarkki

Haluatko saada enemmän vadelma Pi: stäsi? Tässä on paljon hyödyllisiä komentoja Pi: n päätelaitteiden navigointiin ja GPIO-nastojen ohjelmointiin.

Lue seuraava

Liittyvät aiheet
  • tee-se-itse
  • Vadelma Pi
Kirjailijasta
Yash Wate (8 artikkelia julkaistu)

Yash on MUO: n DIY-, Linux-, ohjelmointi- ja tietoturva-alan kirjoittaja. Ennen kuin hän löysi intohimonsa kirjallisesti, hän kehitti verkkoa ja iOS: ää. Löydät hänen kirjoituksensa myös TechPP: stä, jossa hän kattaa muut vertikaalit. Muu kuin tekniikka, hän nauttii puhumasta tähtitieteestä, Formula 1: stä ja kelloista.

Lisää artistilta Yash Wate

Tilaa uutiskirjeemme

Liity uutiskirjeeseemme, jossa on teknisiä vinkkejä, arvosteluja, ilmaisia ​​e-kirjoja ja erikoistarjouksia!

Vielä yksi askel !!!

Vahvista sähköpostiosoitteesi juuri lähettämässäsi sähköpostiviestissä.

.