Pakalpojumi operētājsistēmā Linux tiek startēti, tiklīdz sistēma tiek palaists vai atsāknēts. Lūk, kā savā Linux datorā varat izveidot automātiskās palaišanas sistēmas pakalpojumu.

systemd ir pakalpojumu pārvaldnieks daudziem labi zināmiem Linux izplatījumiem. Pakalpojums ir programmas vienība, kas parasti darbojas fonā. Pakalpojumi pēc būtības tiek automātiski startēti, tiklīdz sistēma sāk darboties, un var darboties bez uzraudzības.

Ja jums ir jāizveido automātiskās palaišanas uzdevums vai programma, kas tiek izpildīta katru reizi, kad palaižat vai restartējat sistēmu, varat apsvērt jauna pakalpojuma izveidi. Uzzināsim, kā izveidot jaunu, pielāgotu sistēmas pakalpojumu operētājsistēmā Linux.

1. darbība: pakalpojuma faila izveide

Lai izveidotu jaunu sistēmas pakalpojuma failu, ir jāveic dažas darbības. Pirmais no tiem ir pakalpojuma vienības faila izveide. Pirms pakalpojuma faila izveides jums ir jāsaprot tā struktūra.

Izpētīsim pakalpojuma failu, no jūsu Linux sistēmas izvelkot reālu, strādājošu pakalpojuma failu. Zemāk varat redzēt vmtools dēmona pakalpojuma pakalpojuma failu.

Šis konkrētais pakalpojums jūsu sistēmā var nebūt pieejams, ja vien jūs arī neizmantojat Linux operētājsistēmā VMware ar instalētiem VMware rīkiem. Attiecīgais pakalpojums nav svarīgs, jo visiem pakalpojumiem vai drīzāk pakalpojumu vienību failiem ir tāda pati bāzes struktūra ar dažiem pielāgojumiem, kas nepieciešami.

Visiem sistēmas pakalpojumu failiem jābūt trim sadaļām: [Apkalpošana], [Vienība], un [Uzstādīt], un daži parametri zem katras sadaļas. Lūk, ko satur katra sadaļa un kāpēc tās ir svarīgas.

1. Vienība

The Vienība sadaļā ir iekļauti svarīgi metadati, piemēram, pakalpojuma apraksts un atkarības. Tam ir trīs parametri: Apraksts, Pirms tam, un Pēc. Kā liecina tas pats, Apraksts parametrs nodrošina noteiktu pakalpojuma kontekstu un tā darbību.

The Pirms tam un Pēc parametri nosaka nosacījumus, kas jāievēro pakalpojuma izpildei. Piemēram, ja sākat tīmekļa servera pakalpojumu, vēlaties, lai tas tiktu palaists tikai pēc tam, kad tīkla pakalpojums ir tiešsaistē. Tātad jūs iestatītu vērtību Pēc parametru tīkla pakalpojumam.

2. apkalpošana

The apkalpošana sadaļā ir divi obligāti parametri: ExecStart, Tips, un daži citi izvēles parametri, piemēram ExecReload, un vēl.

ExecStart definē komandu, kas jāizpilda, kad pakalpojums sākas, savukārt Tips parametrs nosaka nārsta procesa veidu.

3. Uzstādīt

Šī sadaļa un tās dati tiek izsaukti ikreiz, kad iespējojat vai atspējojat pakalpojumu ar komanda systemctl.

Tam ir pāris parametri. Viens no izplatītākajiem un nepieciešamajiem ir WantedBy. The WantedBy parametrs nosaka mērķa vienības, kurām jāsākas ikreiz, kad pakalpojums ir iespējots. Noklusējuma vērtība ir vairāku lietotāju.mērķis.

Šeit minētie parametri nav vienīgie parametri, kurus varat iestatīt vienības failā. Pilnu parametru sarakstu varat iegūt vietnē oficiālā systemd.exec dokumentācija vai ierakstot cilvēks systemd.exec terminālī.

Sistēmas servisa vienības fails vienmēr beidzas ar ".apkalpošana" paplašinājumu, un tie ir jāsaglabā /etc/systemd/system/ direktoriju. Izveidojiet pakalpojuma failu izmantojot pieskāriena komandu ar paaugstinātām privilēģijām, pievienojot to priekšā ar sudo komanda:

sudo touch /etc/systemd/system/.apkalpošana 

Tagad, kad esat izveidojis pakalpojuma failu, sāksim to aizpildīt ar nepieciešamo sintaksi, lai pakalpojums būtu derīgs un darbotos.

2. darbība. Pakalpojuma faila konfigurēšana

Demonstrēšanai jūs izveidosit pakalpojuma paraugu, kas tiek izpildīts Nmap, lai skenētu ierīces portus un saglabājiet izvadi failā ik pēc trīsdesmit sekundēm. Lai veiktu šo uzdevumu, rīkojieties šādi, kā strukturēt pakalpojuma vienības failu.

[Vienība]
Description=Pielāgota nmap pakalpojuma demonstrācija.
After=network.target

[Apkalpošana]
Tips = vienkāršs
User=root
ExecStart=/usr/bin/nmap -sS -O -oN /home//results.txt localhost
Restartēt = vienmēr
RestartSec=30

[Uzstādīt]
WantedBy=multi-user.target

Lai gan šeit minētie parametri ir izskaidroti iepriekš, apskatīsim, kā tie ietekmē mūsu jaunizveidoto pakalpojumu, kā arī izpētīsim jaunus, kas ieviesti šajā vienībā: Restartēt, RestartSec, un Lietotājs.

Lūk, ko nozīmē parametri katrā sadaļā:

  • Apraksts: Cilvēkiem lasāms teksts, lai aprakstītu pakalpojuma funkcijas.
  • After=network.target: Diktēšana sistēmai, no kuras šis pakalpojums ir atkarīgs network.target un jāsāk tikai pēc network.target pakalpojums ir uzsākts. Pieraksti to Pēc netiek izmantots, lai izveidotu tiešas atkarības attiecības, tas vienkārši darbojas kā sprūda.
  • Tips = vienkāršs: Ir vairāki pakalpojumu veidi. Tomēr pakalpojums šajā demonstrācijā ir parasts process, un tāpēc mēs to paziņojam. Visas atšķirīgās vērtības varat atrast oficiālajā dokumentācijas lapā, kas norādīta iepriekš.
  • Restartēt = vienmēr: Tas nozīmē, ka ikreiz, kad pakalpojums iziet, tas vienmēr jārestartē.
  • RestartSec=30: Tas iestata intervālu starp katru pakalpojuma sākšanu uz 30 sekundēm.
  • User=root: Tas nosaka, ka pakalpojums darbosies kā root lietotājs. Šajā gadījumā šī darbība ir obligāta, jo Nmap nevarēs palaist bez root tiesībām.
  • ExecStart: Šī direktīva satur absolūto ceļu uz izpildāmo programmu kopā ar visiem nepieciešamajiem karodziņiem vai argumentiem, kas nepieciešami, lai programma darbotos pareizi.
  • WantedBy=multi-user.target: Šis pakalpojuma faila parametrs norāda, kuram mērķim ir jāiekļauj vai "vēlas" pakalpojums. Ja pakalpojums ir iekļauts mērķī, tas nozīmē, ka pakalpojumam ir jāsākas, kad sistēma sāknēšanas procesa laikā sasniedz šo mērķi. Šajā gadījumā pakalpojumam jāsākas, kad sistēma pāriet vairāku lietotāju režīmā. Vairāku lietotāju režīms ir stāvoklis, kad sistēma ir pilnībā sāknēta un ļauj vairākiem lietotājiem pieteikties un izmantot sistēmu.

3. darbība: pakalpojuma iespējošana un palaišana

Tagad, kad esat izveidojis vienības failu, vienīgās darbības, kas atlikušas, lai aktivizētu pakalpojumu, ir tā iespējošana un palaišana. Varat iespējot un sākt pakalpojumu, izmantojot komandu systemctl.

Lūk, kā izmantot systemctl, lai iespējotu, palaistu un pārbaudītu pakalpojuma statusu.

sudo systemctl enable .apkalpošana
sudo systemctl start .apkalpošana
sudo systemctl statuss .apkalpošana

Tagad jūsu pielāgotajam pakalpojumam vajadzētu darboties! Šādā gadījumā jums vajadzētu redzēt Nmap skenēšanu, kas darbojas ik pēc trīsdesmit sekundēm, un izvade tiek saglabāta rezultāti.txt failu mājas direktorijā.

Sistēmiskā pakalpojuma iestatīšana operētājsistēmā Linux ir vienkārša!

Lai gan pielāgota pakalpojuma iestatīšana no jauna sākotnēji var šķist biedējoša, tas ir diezgan vienkāršs veids, kā iestatīt izveidot pašizpildošu, bez uzraudzības procesu, lai veiktu atkārtotus uzdevumus jūsu vietā un uzlabotu jūsu darbību produktivitāte.

Demonstrācijas pakalpojumā mēs tik tikko esam sapratuši, kā varat konfigurēt un iestatīt pakalpojumu. Lai uzzinātu visu par pakalpojuma pielāgošanu, ieteicams iepazīties ar piezīmē norādīto oficiālo dokumentāciju.

Ja pakalpojuma iestatīšana un uzturēšana jums šķiet pārāk smags uzdevums, apsveriet iespēju pārbaudīt alternatīvu veidu, kā automatizēt atkārtotus uzdevumus operētājsistēmā Linux.