Restartējiet pakalpojumu, izmantojot komandu systemctl restart

Restartejiet Pakalpojumu Izmantojot Komandu Systemctl Restart



The systemd ir sistēmas pakalpojumu pārvaldnieks, ko plaši izmanto operētājsistēmā Linux. Spēt systemd pakalpojumi, systemctl tiek izmantota komandrindas utilīta. Šis rīks tiek izmantots arī jebkura sistēmas pakalpojuma restartēšanai.

Pakalpojumi operētājsistēmā Linux tiek pārvaldīti, izmantojot to konfigurācijas failu. Ja pakalpojuma konfigurācijas failā tiek veiktas izmaiņas, ir jāuzsāk pakalpojuma restartēšana, lai piemērotu izmaiņas. Restartējot pakalpojumu, systemd atkārtoti novērtē konfigurācijas failu un piemēro modifikācijas.

Šajā rokasgrāmatā es apskatīšu, kā izmantot systemctl, lai restartētu pakalpojumu operētājsistēmā Linux.







Piezīme: Šajā rokasgrāmatā ir iekļautas komandas un instrukcijas, kas tiek izpildītas Ubuntu 22.04. Komanda darbosies bez problēmām izplatījumos, kas tiek piegādāti kopā ar sistēmas pakalpojumu pārvaldnieku.



Systemctl restartēšanas komanda

The restartēt komanda būtībā aptur pakalpojumu un sāk to no jauna. Ja pakalpojums vai vienība nedarbojas, tā darbību sāks restartēšanas komanda.



Restartēšanas komanda nenoņem procesus, kas ir saistīti ar pakalpojumu. Ņemiet par piemēru failu deskriptorus, kas ir nenegatīvi identifikatori, ko operētājsistēma piešķir pakalpojuma atvērtajiem failiem. Ja restartējat pakalpojumu, restartēšanas procesa laikā ar šo pakalpojumu saistītais faila deskriptors paliks tajā.





Ja vēlaties izskalot visus ar pakalpojumu saistītos procesus, tas ir skaidri jādara stop pakalpojumu un sākt to vēlreiz.

Kā restartēt pakalpojumu

Operētājsistēmā Linux varat restartēt pakalpojumu, izmantojot sudo systemctl komandrindas rīks ar restartēt opciju un norādot tās nosaukumu. Vispārējā sintakse ir dota zemāk:



sudo systemctl restart [ pakalpojuma nosaukums ]

Jums būs nepieciešams sudo privilēģijas, lai restartētu pakalpojumu.

Piemēram, restartēsim ssh apkalpošana.

sudo systemctl restartējiet ssh.service

Lai restartētu vairākus pakalpojumus, pievienojiet katra pakalpojuma nosaukumu aiz restartēt komandu ar atstarpi.

sudo systemctl restartējiet ssh.service smbd.service

Citas restartēšanas komandas ir norādītas zemāk esošajā tabulā:

mēģiniet-restartēt Tas aptur vai palaiž norādīto pakalpojumu vai pakalpojumus un, ja pakalpojums nedarbojas, tas to nesāk
pārlādēt vai restartēt Atkārtoti ielādējiet atbalstīto pakalpojumu vai pakalpojumus un, ja pakalpojums netiek atbalstīts, restartējiet to un aktivizējiet to
mēģiniet-pārlādēt-vai-mēģiniet-restartēt Atkārtoti ielādējiet atbalstīto pakalpojumu vai pakalpojumus un, ja pakalpojums netiek atbalstīts, restartējiet to, to neaktivizējot

Iepriekš minētajās komandās .apkalpošana pagarinājums nav obligāts.

Kā automātiski restartēt pakalpojumu

Operētājsistēmā Linux, ja pakalpojums neizdodas, tad systemd restartēja to pēc noklusējuma. Tomēr daudzos gadījumos var būt nepieciešams mainīt pakalpojuma restartēšanas veidu. Piemēram, pielāgotā pakalpojuma atkļūdošanas procesa laikā var būt nepieciešama manuāla darbība.

Sistēmas vienības faili vai pakalpojumu faili atrodas /etc/systemd/system vai /lib/systemd/system galvenokārt atkarībā no pakalpojuma izveides veida. Lai uzskaitītu vienības failus operētājsistēmā Linux, izmantojiet šo komandu:

ls / lib / systemd / sistēma

Jūs varat redzēt dažādu pakalpojumu konfigurācijas failus. Atvērsim ssh.service failu, izmantojot nano redaktors.

sudo nano / lib / systemd / sistēma / ssh.service

Šeit jūs varat modificēt Restartēt iestatījumu. Pēc noklusējuma tas ir iestatīts uz neveiksmes gadījumā . Tālāk ir norādītas citas pakalpojuma restartēšanas iespējas:

  • vienmēr
  • uz panākumiem
  • neveiksmes gadījumā
  • on-nenormāls
  • uz abortu
  • sargsuns

Vēl viena opcija vienības pakalpojumu failā ir RestartSec ko izmanto, lai norādītu sekunžu skaitu, pēc kura pakalpojums tiks restartēts.

[ apkalpošana ]

Restartēt = vienmēr

RestartSec = 5

Šie norādījumi nozīmē, ka pakalpojums tiks restartēts sāknēšanas laikā un, ja tas tiks pārtraukts, tiks restartēts pēc 5 sekundēm.

Pēc iestatījuma modificēšanas izpildiet šo komandu, lai lietotu izmaiņas.

sudo systemctl reload-daemon

Ir arī citi svarīgi iestatījumi, kas jāņem vērā StartLimitIntervalSec un StartLimitBurst . Šīs opcijas ir noderīgas, lai iestatītu maksimālo pakalpojuma restartēšanas laiku un maksimālo atkārtojumu skaitu.

[ Vienība ]

StartLimitIntervalSec = 300

StartLimitBurst = 4

Iepriekš sniegtā instrukcija norāda, ka sistēma automātiski pārtrauks mēģināt restartēt pakalpojumu, ja tas nesāksies pēc 300 sekundēm un 4 atkārtotajiem mēģinājumiem.

Lai pārbaudītu, vai pakalpojums tiek restartēts pēc 5 sekundēm, pārtrauciet pakalpojumu, izmantojot pakalpojuma PID un nogalināt komandu.

sudo nogalināt -9 [ PID ]

Pēc 5 sekundēm pakalpojums tiks restartēts; izmantojiet Journalctl komanda, lai pārbaudītu statusu ssh.service .

Journalctl -in ssh.service

Kā restartēt pakalpojumu, kad tiek restartēts atkarīgais pakalpojums

Operētājsistēmā Linux daudzi pakalpojumi ir savstarpēji atkarīgi, un līdzīgi tie ir jārestartē, restartējot atkarīgo pakalpojumu.

Vienības pakalpojuma failā ir trīs dažādas opcijas pakalpojuma restartēšanai, restartējot atkarīgo pakalpojumu.

  • Daļa no
  • BindsTo
  • Nepieciešams

Visas šīs opcijas veic vienu un to pašu uzdevumu.

Ņemsim ssh.service piemēru, kas ir atkarīgs no apparmor.service; Linux drošības modulis, lai nodrošinātu nepieciešamo piekļuvi. Lai uzskaitītu pakalpojuma atkarības Linux lietošanā systemctl ar saraksta atkarības komandas un pakalpojuma nosaukums.

systemctl list-dependencies ssh.service

Tātad, ja vēlaties restartēt ssh.service, restartējot apparmor.service, faila apparmor.service sadaļā [Unit] ir jāiekļauj opcija PartOf, BindsTo vai Requires kopā ar pakalpojuma nosaukumu.

Atveriet failu apparmor.service.

sudo nano / lib / systemd / sistēma / apparmor.service

Sadaļā [Unit] pievienojiet šādu rindiņu.

Daļa no =ssh.service

Saglabājiet failu un izpildiet komandu daemon-reload.

sudo systemctl daemon-reload

Tagad restartējiet ssh.service un pēc tam pārbaudiet apparmor.service žurnāls.

Jūs pamanīsit, apparmor.service tajā pašā laikā tika restartēts ssh.service restartēts.

Secinājums

Lai restartētu pakalpojumu vai pakalpojumus operētājsistēmā Linux, systemctl komanda tiek izmantota kopā ar restartēt opciju. The systemctl ir komandrindas utilīta, ko izmanto, lai pārvaldītu sistēmas pakalpojumus. The restartēt opcija sāk pakalpojumu un pēc tam to aptur, aktivizējot neaktīvu pakalpojumu. Tomēr pakalpojumu var restartēt, to neaktivizējot, izmantojot mēģiniet-restartēt opciju.