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.serviceLai restartētu vairākus pakalpojumus, pievienojiet katra pakalpojuma nosaukumu aiz restartēt komandu ar atstarpi.
sudo systemctl restartējiet ssh.service smbd.serviceCitas 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ēmaJū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:
- Nē
- 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-daemonIr 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.serviceSadaļā [Unit] pievienojiet šādu rindiņu.
Daļa no =ssh.service
Saglabājiet failu un izpildiet komandu daemon-reload.
sudo systemctl daemon-reloadTagad 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.