Palvelut Linuxissa käynnistyvät heti, kun järjestelmäsi käynnistyy tai käynnistetään uudelleen. Näin voit luoda automaattisesti käynnistyvän systemd-palvelun Linux-tietokoneellesi.

systemd on palvelupäällikkö monille tunnetuille Linux-jakeluille. Palvelu on ohjelman yksikkö, joka tyypillisesti toimii taustalla. Palvelut käynnistyvät luonnostaan ​​automaattisesti heti järjestelmän käynnistyessä ja voivat toimia ilman valvontaa.

Jos sinun on luotava automaattisesti käynnistyvä tehtävä tai ohjelma, joka suoritetaan aina, kun käynnistät tai käynnistät järjestelmän uudelleen, voit harkita uuden palvelun luomista. Opitaan luomaan uusi, mukautettu järjestelmäpalvelu Linuxissa.

Vaihe 1: Luo palvelutiedosto

Uuden systemd-palvelutiedoston luominen edellyttää muutaman vaiheen. Ensimmäinen niistä on yksikkötiedoston luominen palvelulle. Ennen kuin luot palvelutiedoston, sinun on ymmärrettävä sen rakenne.

Tutkitaanpa palvelutiedostoa vetämällä oikea, toimiva palvelutiedosto Linux-järjestelmästäsi. Alla näet vmtools-daemon-palvelun palvelutiedoston.

instagram viewer

Tätä palvelua ei välttämättä ole järjestelmässäsi, ellet käytä Linuxia VMwaressa ja VMware-työkalut on asennettu. Kyseinen palvelu ei ole tärkeä, koska kaikilla palveluilla tai pikemminkin palveluyksikkötiedostoilla on sama perusrakenne ja joitain mukautuksia tarpeen mukaan.

Kaikissa järjestelmäpalvelutiedostoissa on oltava kolme osaa: [Palvelu], [Yksikkö], ja [Asentaa], ja muutama parametri kunkin osan alla. Tässä on mitä kukin osio sisältää ja miksi ne ovat tärkeitä:

1. Yksikkö

The Yksikkö -osio sisältää tärkeitä metatietoja, kuten kuvauksen ja palvelun riippuvuuksia. Siinä on kolme parametria: Kuvaus, Ennen, ja Jälkeen. Kuten sama ehdottaa, Kuvaus parametri tarjoaa jonkinlaisen kontekstin palvelulle ja sen tekemiselle.

The Ennen ja Jälkeen parametrit määrittelevät ehdot, jotka palvelun on täytettävä. Jos esimerkiksi käynnistät verkkopalvelinpalvelun, haluat sen käynnistyvän vasta, kun verkkopalvelu on online-tilassa. Joten asetat arvon Jälkeen parametri verkkopalveluun.

2. Palvelu

The Palvelu jakso sisältää kaksi pakollista parametria: ExecStart, Tyyppi, ja muutama muu valinnainen parametri, kuten ExecReload, ja enemmän.

ExecStart määrittää komennon, joka suoritetaan palvelun käynnistyessä, kun taas Tyyppi parametri määrittää synnytettävän prosessin tyypin.

3. Asentaa

Tämä osio ja sen tiedot kutsutaan aina, kun otat palvelun käyttöön tai poistat sen käytöstä systemctl-komento.

Siinä on pari parametria. Yksi yleisimmistä ja välttämättömistä on WantedBy. The WantedBy parametri määrittää kohdeyksiköt, joiden tulee käynnistyä aina, kun palvelu otetaan käyttöön. Oletusarvo on monen käyttäjän.kohde.

Tässä mainitut parametrit eivät ole ainoita parametreja, jotka voit asettaa yksikkötiedostoon. Saat täydellisen luettelon parametreista osoitteesta virallinen systemd.exec-dokumentaatio tai kirjoittamalla mies systemd.exec terminaalissa.

Järjestelmän palveluyksikkötiedosto päättyy aina ".palvelu" laajennus ja se on säilytettävä /etc/systemd/system/ hakemistosta. Luo palvelutiedosto käyttämällä kosketuskomentoa korotetuilla oikeuksilla lisäämällä sen eteen sudo komento:

sudo touch /etc/systemd/system/.palvelu 

Nyt kun olet luonut palvelutiedoston, täytä se tarvittavalla syntaksilla, jotta palvelu on kelvollinen ja toimiva.

Vaihe 2: Palvelutiedoston määrittäminen

Esittelyä varten luot esimerkkipalvelun, joka suoritetaan Nmap tarkistaaksesi koneen portit ja tallenna tulos tiedostoon 30 sekunnin välein. Suorittaaksesi tämän tehtävän, rakenna palveluyksikkötiedosto seuraavasti:

[Yksikkö]
Description=Mukautetun nmap-palvelun esittely.
After=network.target

[Palvelu]
Tyyppi = yksinkertainen
User=root
ExecStart=/usr/bin/nmap -sS -O -oN /home//results.txt localhost
Käynnistä uudelleen = aina
RestartSec=30

[Asentaa]
WantedBy=multi-user.target

Vaikka tässä mainitut parametrit on selitetty aiemmin, käydään läpi kuinka ne vaikuttavat äskettäin luotuun palveluumme ja tutkitaan myös uusia tässä yksikössä esiteltyjä: Uudelleenkäynnistää, RestartSec, ja Käyttäjä.

Tässä on mitä kunkin osion parametrit tarkoittavat:

  • Kuvaus: Ihmisen luettava teksti, joka kuvaa palvelun toimintoja.
  • After=network.target: Sanotaan järjestelmälle, josta tämä palvelu on riippuvainen network.target ja se tulisi aloittaa vasta sen jälkeen network.target palvelu on aloitettu. Ota huomioon, että Jälkeen Sitä ei käytetä minkään suoran riippuvuussuhteen luomiseen, se toimii yksinkertaisesti laukaisevana.
  • Tyyppi = yksinkertainen: Palvelutyyppejä on useita. Palvelu tässä esittelyssä on kuitenkin säännöllinen prosessi, ja siksi julistamme sen niin. Löydät kaikki tämän arvot aiemmin linkitetyltä viralliselta dokumentaatiosivulta.
  • Käynnistä uudelleen = aina: Tämä tarkoittaa, että aina kun palvelu suljetaan, sen tulee aina käynnistyä uudelleen.
  • RestartSec=30: Tämä asettaa palvelun jokaisen käynnistyksen väliseksi aikaväliksi 30 sekuntia.
  • User=root: Tämä määrittää, että palvelu toimii pääkäyttäjänä. Tässä tapauksessa tämä on pakollinen vaihe, koska Nmap ei voi toimia ilman pääkäyttäjän oikeuksia.
  • ExecStart: Tämä direktiivi sisältää suoritettavan ohjelman absoluuttisen polun sekä kaikki tarvittavat liput tai argumentit, jotka ovat tarpeen ohjelman toimimiseksi oikein.
  • WantedBy=multi-user.target: Tämä palvelutiedoston parametri määrittää, minkä kohteen tulee sisältää tai "halua" palvelu. Kun palvelu sisältyy kohteeseen, se tarkoittaa, että palvelun pitäisi käynnistyä, kun järjestelmä saavuttaa kyseisen tavoitteen käynnistysprosessin aikana. Tässä tapauksessa palvelun pitäisi käynnistyä, kun järjestelmä siirtyy monen käyttäjän tilaan. Monen käyttäjän tila on tila, jossa järjestelmä on täysin käynnistetty ja sallii useiden käyttäjien kirjautua sisään ja käyttää järjestelmää.

Vaihe 3: Palvelun käyttöönotto ja käynnistäminen

Nyt kun olet luonut yksikkötiedoston, palvelun aktivoiminen on jäljellä vain sen ottaminen käyttöön ja suorittaminen. Voit ottaa palvelun käyttöön ja käynnistää sen systemctl-komennolla.

Näin voit käyttää systemctl: ää palvelun käyttöönottoon, käynnistämiseen ja tilan tarkistamiseen:

sudo systemctl enable .palvelu
sudo systemctl start .palvelu
sudo systemctl tila .palvelu

Nyt mukautetun palvelusi pitäisi olla käytössä! Tässä tapauksessa sinun pitäisi nähdä Nmap-skannaus käynnissä 30 sekunnin välein ja tuloste tallennetaan tulokset.txt tiedosto kotihakemistossa.

Järjestelmäpalvelun määrittäminen Linuxissa on helppoa!

Vaikka mukautetun palvelun perustaminen alusta alkaen saattaa tuntua pelottavalta, se on melko helppo tapa luoda itsesuorittavan, valvomattoman prosessin suorittaakseen toistuvia tehtäviä puolestasi ja tehostaakseen toimintaasi tuottavuutta.

Demopalvelussa olemme hädin tuskin raaputtaneet palvelun konfigurointia ja käyttöönottoa. Jos haluat tietää kaiken siitä, kuinka voit mukauttaa palveluasi, on suositeltavaa käydä läpi huomautuksessa linkitetty virallinen dokumentaatio.

Jos palvelun käyttöönotto ja ylläpito tuntuu liian suurelta tehtävältä, harkitse vaihtoehtoisen tavan automatisoida toistuvia tehtäviä Linuxissa.