Systemd init -järjestelmä on nyt osa lähes kaikkia Linux-jakeluja. Järjestelmänvalvojana tai kehittäjänä luot palveluita, joita systemd voi hallita. Jos esimerkiksi haluat käynnistää palveluita käynnistyksen yhteydessä tai hallita niitä manuaalisesti, se voidaan tehdä mukautetun palvelutiedoston kautta.
Tässä opetusohjelmassa käyn läpi, kuinka luodaan systemd-palvelutiedosto Linuxissa.
Mikä on palvelutiedosto
Ennen kuin jatkat, ymmärrämme, mikä systemd-palvelutiedosto on ja miten se luodaan Linuxissa.
Systemd-palvelutiedosto sisältää ohjeet, jotka on asetettu systemd:lle palvelun hallintaan. Se sisältää yleensä kolme osaa:
- Yksikkö
- Palvelu
- Asentaa
The Yksikkö -osio sisältää perustiedot palvelusta, kuten lyhyen kuvauksen, dokumentaatiosivut ja polun riippuvuuksiin. The Asentaa -osio on valinnainen, mutta yleensä se hallitsee, missä järjestelmätilassa palvelu tulee ottaa käyttöön.
The Palvelu -osio on yleensä Unit- ja Install-osien välissä. Se sisältää ensisijaisesti palvelun tyypin ja suoritettavien tiedostojen polun, jotka pohjimmiltaan ovat komentoja, jotka suoritetaan, kun systemd kutsuu palvelua.
Tältä näyttää tyypillinen palvelutiedostorakenne.
[ Yksikkö ]
direktiivi1 = ohje
direktiivi2 = ohje
…
[ Palvelu ]
direktiivi1 = ohje
direktiivi2 = ohje
…
[ Asentaa ]
direktiivi1 = ohje
direktiivi2 = ohje
…
Tässä direktiivit ovat parametreja, jotka ottavat vastaavan syötteensä. Esimerkiksi, Kuvaus direktiivi ottaa palvelun nimen merkkijonon. Samalla tavalla, ExecStart ottaa huomioon suoritettavan tiedoston täydellisen polun.
Tyypillinen palvelutiedosto ssh.service on annettu alla.
Palvelutiedoston luominen
Järjestelmäpalvelun luomiseksi on välttämätöntä ymmärtää keskeiset ohjeet. Tässä oppaassa käsittelen tärkeitä ohjeita, jotka voivat auttaa sinua luomaan täysin toimivan palvelutiedoston.
Palvelutiedoston luominen sisältää useita vaiheita, aloitetaanko skriptitiedoston luominen.
Huomautus: Jotta voit jatkaa alla mainitulla menetelmällä, sinulla on oltava pääkäyttäjän oikeudet.
1. Skriptin luominen
Ensimmäinen vaihe sisältää koodin luomisen, joka suoritetaan, kun palvelu aloittaa toimintansa. Tätä opetusohjelmaa varten luon bash-skriptin, joka tallentaa Linux-järjestelmän käytettävyyden ja muistin käytön.
Luodaan komentosarja nykyiseen hakemistoon nimellä myscript.sh käyttämällä nanoeditoria.
sudo nano myscript.shLisää nyt alla oleva komentosarja tiedostoon ja tallenna se painamalla ctrl+x ja sitten ja .
#!/bin/bashkaiku '>>Tässä on järjestelmän käyttöaika<<' > Koti / hän itse / omatiedosto.txt
käyttöaste >> Koti / hän itse / omatiedosto.txt
kaiku '>>Tässä on järjestelmäsi muistin käyttö<<' >> / Koti / hän itse / omatiedosto.txt
vapaa -m >> Koti / hän itse / omatiedosto.txt
nukkua 60
Käsikirjoitus sisältää pari kaikumerkkijonoa ja käyttöaste ja vapaa komentoja.
The käyttöaste Linuxin komentoa käytetään tulostamaan, kuinka kauan järjestelmä on ollut käynnissä ja kuinka monta käyttäjää on yhteydessä järjestelmän keskimääräisellä kuormituksella viimeisen 1, 5 ja 15 minuutin aikana.
The vapaa -komentoa käytetään tulostamaan järjestelmän muistin käyttö, kun taas -m lippua käytetään tulosteen tulostamiseen MBs .
Tietojen tallentamiseen tekstitiedostoon käytämme erikoisoperaattoreita, joita kutsutaan uudelleenohjausoperaattoreiksi. The > -operaattoria käytetään tekstin lisäämiseen mainittuun tekstitiedostoon. Jos tiedostoa ei kuitenkaan ole vielä olemassa, se luodaan. Samalla kun >> -operaattoria käytetään tekstin liittämiseen tiedostoon. The nukkua komentoa käytetään ylläpitämään palvelun toimintaa vähintään minuutin ajan.
Tee nyt komentosarjasta suoritettava myöntämällä tarvittavat käyttöoikeudet.
sudo chmod +x myscript.shSkriptillä on nyt suorituslupa, siirrytään seuraavaan osaan.
Huomautus: Jotta palvelutiedosto olisi virheetön, käytä tiedoston absoluuttista polkua bash-komentosarjassa.
2. Luodaan .service-tiedosto
Luo seuraavaksi palvelutiedosto .palvelu laajennus. Palvelutiedosto on luotava tiedostoon /etc/systemd/system hakemistosta. Siirry ensin tähän hakemistoon käyttämällä CD komento.
CD / jne / systemd / järjestelmäVoit luoda palvelutiedoston mihin tahansa hakemistoon ja siirtää tiedoston myöhemmin kuitenkin tähän hakemistoon.
Olen luomassa palvelutiedostoa myservice.service nimi.
sudo nano myservice.serviceLisää nyt tiedostoon seuraavat rivit.
[ Yksikkö ]Kuvaus = Palveluni
[ Palvelu ]
Tyyppi = yksinkertainen
ExecStart = / roskakori / lyödä / Koti / hän itse / script.sh
Uudelleenkäynnistää =vikatilanteessa
[ Asentaa ]
WantedBy =multi-user.target
Ota huomioon, että [Yksikkö], [Palvelu], ja [Asentaa] ovat kirjainkoolla . Palvelutiedosto ei toimi, jos jokin niistä mainitaan väärin, kuten [YKSIKKÖ] tai [PALVELU].
Palvelun nimi on määritetty muodossa Palveluni in Kuvaus direktiivin [Yksikkö] osio.
The Tyyppi palvelusta on yksinkertainen in [Palvelu] -osio, joka on oletustyyppi. Haaroittuminen , yksi laukaus , ilmoittaa , dbus , ja tyhjäkäynti ovat joitain muita tyyppejä.
Jos haluat tehdä palvelusta käyttäjäkohtaisen, niin Käyttäjä direktiiviä voidaan käyttää myös käyttäjän käyttäjänimen kanssa. Tämän ohjeen käyttäminen tekee palvelun käyttäjän luvista riippuvaiseksi.
Samalla kun ExecStart direktiivi sisältää suoritettavan tiedoston täyden polun. Yllä olevassa esimerkissä komentosarjatiedosto myscript.sh on tallennettu /home/sam/ hakemistosta. Tämä direktiivi itse asiassa hallitsee mitä suoritetaan, kun systemd kutsuu palvelun. Jos komennon koko polkua ei ole määritetty, se ratkaistaan automaattisesti korjaamaan absoluuttiset polut, kuten /usr/local/bin , /usr/bin/, ja /bin . On täysin hienoa käyttää suoritettavaa nimeä niin kauan kuin ne ovat vakiokomentohakemistoissa, mutta muuten mainitse absoluuttinen polku. Huomaa, että voidaan käyttää myös useita komentoja, jotka erotetaan puolipisteellä (;).
The [Asentaa] osio on valinnainen; Se kuitenkin osoittaa, kuinka palvelu on käytössä. The WantedBy direktiivi ottaa ajon tason kohdetiedostot parametreiksi. Erilaiset kohdetiedostot osoittivat järjestelmän eri ajotasoja, kuten virta pois , pelastaa , usean käyttäjän , graafinen , ja käynnistä uudelleen .
The monen käyttäjän.kohde tarkoittaa, että palvelu otetaan käyttöön, kun järjestelmä on tilassa, joka sallii usean käyttäjän ei-graafiset istunnot.
3. Palvelun aktivointi
Aktivoi palvelu lataamalla ensin järjestelmän kokoonpanot uudelleen käyttämällä systemctl apuohjelma.
sudo systemctl daemon-reloadAktivoi seuraavaksi palvelu uudelleen käyttämällä systemctl komento kanssa ota käyttöön .
sudo systemctl ota käyttöön myservice.serviceTarkistaaksesi palvelun tilan käyttämällä systemctl tila komento.
Palvelu toimii onnistuneesti.
Nyt luetaan tekstitiedosto omatiedosto.txt luotu palvelu /Koti hakemistosta.
Systemd-palvelutiedoston luominen tavalliselle käyttäjälle
Palvelutiedoston luominen tavalliselle käyttäjälle on samanlainen kuin järjestelmänvalvojan tapa luoda palvelutiedosto. Tavallisten käyttäjien palvelutiedoston tallennushakemisto on kuitenkin erilainen. Tavallisten käyttäjien on sijoitettava palvelutiedostonsa ~/.config/systemd/user . Tämä hakemisto on luotava käyttämällä mkdir komento.
mkdir ~ / .config / systemd / käyttäjäPalvelun aktivointi normaalin käyttäjän toimesta -käyttäjä komento lisätään kanssa systemctl sijasta sudo .
systemctl --käyttäjä daemon-reloadsystemctl --käyttäjä ota käyttöön PALVELU-NAME.palvelu
systemctl --käyttäjä tila PALVELU-NAME.palvelu
The -käyttäjä -vaihtoehtoa käytetään käyttäjän järjestelmäpalvelutiedostojen hallintaan.
Palvelutiedoston poistaminen
Palvelutiedoston poistamiseksi palvelu on ensin pysäytettävä.
sudo systemctl stop SERVICE-NAME.serviceTarkista tila käyttämällä systemctl tila komento tietää, onko palvelu pysäytetty vai ei. Poista sitten palvelutiedosto käyttämällä rm komento.
sudo rm / jne / systemd / järjestelmä / PALVELU-NAME.palveluLataa nyt uudelleen systemd kokoonpano.
sudo systemctl daemon-reloadJohtopäätös
Räätälöity järjestelmäpalvelu on edullinen erilaisissa skenaarioissa. Tässä oppaassa opimme luomaan mukautetun systemd-palvelutiedoston järjestelmänvalvojalle ja kuinka tavalliset käyttäjät voivat luoda palvelutiedoston. Lisäksi näemme myös palvelutiedoston poistamismenettelyn.