Iš naujo paleiskite paslaugą naudodami komandą systemctl restart

Is Naujo Paleiskite Paslauga Naudodami Komanda Systemctl Restart



The sisteminis yra sistemos paslaugų tvarkyklė, plačiai naudojama Linux sistemoje. Valdyti sisteminis paslaugos, systemctl naudojamas komandinės eilutės įrankis. Šis įrankis taip pat naudojamas iš naujo paleisti bet kokią sistemos paslaugą.

„Linux“ paslaugos valdomos per jų konfigūracijos failą. Jei atliekami paslaugos konfigūracijos failo pakeitimai, norint pritaikyti pakeitimus, būtina iš naujo paleisti paslaugą. Iš naujo paleidus paslaugą, sistema iš naujo įvertina konfigūracijos failą ir pritaiko pakeitimus.

Šiame vadove apžvelgsiu, kaip naudoti systemctl norint iš naujo paleisti paslaugą sistemoje „Linux“.







Pastaba: Šiame vadove yra komandos ir instrukcijos, vykdomos Ubuntu 22.04. Komanda veiks be problemų paskirstymuose, kurie pateikiami su sistemos paslaugų tvarkykle.



Systemctl iš naujo paleiskite komandą

The perkrauti komanda iš esmės sustabdo paslaugą ir paleidžia ją iš naujo. Jei paslauga ar įrenginys neveikia, paleidimo komanda pradės jo veikimą.



Paleidimo iš naujo komanda nepašalina procesų, susietų su paslauga. Paimkite failų deskriptorių pavyzdį, kuris yra neneigiami identifikatoriai, kuriuos operacinė sistema priskiria failams, kuriuos atidaro paslauga. Jei iš naujo paleisite paslaugą, su ta paslauga susietas failo deskriptorius išliks ten per paleidimo procesą.





Jei norite pašalinti visus su paslauga susijusius procesus, turite tai padaryti aiškiai sustabdyti paslauga ir pradėti ir vel.

Kaip iš naujo paleisti paslaugą

„Linux“ galite iš naujo paleisti paslaugą naudodami sudo systemctl komandinės eilutės įrankis su perkrauti parinktį ir nurodydami jos pavadinimą. Bendroji sintaksė pateikta toliau:



sudo systemctl paleisti iš naujo [ paslaugos pavadinimas ]

Jums reikės sudo privilegijos iš naujo paleisti paslaugą.

Pavyzdžiui, paleiskite iš naujo ssh paslauga.

sudo systemctl iš naujo paleiskite ssh.service

Norėdami iš naujo paleisti kelias paslaugas, pridėkite kiekvienos paslaugos pavadinimą po perkrauti komandą su tarpu.

sudo systemctl iš naujo paleiskite ssh.service smbd.service

Kitos iš naujo paleidimo komandos pateiktos toliau esančioje lentelėje:

pabandykite - paleiskite iš naujo Jis sustabdo arba paleidžia nurodytą paslaugą ar paslaugas ir, jei paslauga neveikia, jos nepaleidžia
iš naujo įkelti arba paleisti iš naujo Iš naujo įkelkite palaikomą paslaugą ar paslaugas ir, jei paslauga nepalaikoma, paleiskite ją iš naujo ir suaktyvinkite
bandyk-perkrauti-arba-bandyk-paleisti iš naujo Iš naujo įkelkite palaikomą paslaugą ar paslaugas ir, jei paslauga nepalaikoma, paleiskite ją iš naujo jos nesuaktyvinę

Aukščiau pateiktose komandose .paslauga pratęsimas yra neprivalomas.

Kaip automatiškai iš naujo paleisti paslaugą

„Linux“ sistemoje, jei paslauga nepavyksta, tada sisteminis iš naujo paleido pagal numatytuosius nustatymus. Nepaisant to, daugeliu atvejų gali prireikti pakeisti paslaugos paleidimo iš naujo būdą. Pavyzdžiui, gali prireikti rankinio veiksmo derinant pagal užsakymą sukurtą paslaugą.

Sistemos įrenginio failai arba paslaugų failai yra /etc/systemd/system arba /lib/systemd/system daugiausia priklauso nuo to, kaip paslauga sukurta. Norėdami išvardyti vieneto failus Linux sistemoje, naudokite šią komandą:

ls / lib / sisteminis / sistema

Galite matyti įvairių paslaugų konfigūracijos failus. Atidarykime ssh.service failą naudodami nano redaktorius.

sudo nano / lib / sisteminis / sistema / ssh.service

Čia galite modifikuoti Perkrauti nustatymą. Pagal numatytuosius nustatymus jis nustatytas į gedimo metu . Toliau pateikiamos kitos paslaugos paleidimo iš naujo parinktys:

  • Nr
  • visada
  • sėkmės
  • gedimo metu
  • nenormalus
  • dėl aborto
  • budintysis šuo

Kita parinktis įrenginio aptarnavimo faile yra RestartSec kuris naudojamas norint nurodyti sekundžių skaičių, po kurio paslauga bus paleista iš naujo.

[ Aptarnavimas ]

Perkrauti = visada

RestartSec = 5

Šios instrukcijos reiškia, kad paslauga bus paleista iš naujo įkrovos metu ir, jei bus pertraukta, bus paleista iš naujo po 5 sekundžių.

Pakeitę parametrą, atlikite šią komandą, kad pritaikytumėte pakeitimus.

sudo systemctl reload-daemon

Kiti svarbūs nustatymai, į kuriuos reikia atsižvelgti StartLimitIntervalSec ir StartLimitBurst . Šios parinktys yra naudingos norint nustatyti maksimalų laiką ir maksimalų pakartotinių bandymų skaičių, kad paslauga būtų paleista iš naujo.

[ Vienetas ]

StartLimitIntervalSec = 300

StartLimitBurst = 4

Aukščiau pateikta instrukcija rodo, kad sistema automatiškai nustos bandyti iš naujo paleisti paslaugą, jei ji nepasileidžia po 300 sekundžių ir 4 bandymų.

Norėdami patikrinti, ar paslauga paleidžiama iš naujo po 5 sekundžių, ar ne, išjunkite paslaugą naudodami paslaugos PID ir nužudyti komandą.

sudo nužudyti -9 [ PID ]

Po 5 sekundžių paslauga bus paleista iš naujo; naudoti Journalctl komanda, kad patikrintų būseną ssh.service .

Journalctl ssh.service

Kaip iš naujo paleisti paslaugą, kai priklausoma paslauga paleidžiama iš naujo

„Linux“ sistemoje daugelis paslaugų yra tarpusavyje susijusios, todėl jas reikia paleisti iš naujo, kai iš naujo paleidžiama priklausoma paslauga.

Vieneto paslaugos faile yra trys skirtingos parinktys, leidžiančios iš naujo paleisti paslaugą, kai iš naujo paleidžiama priklausoma paslauga.

  • Dalis
  • BindsTo
  • Reikalauja

Visos šios parinktys atlieka tą pačią užduotį.

Paimkime ssh.service pavyzdį, kuris priklauso nuo apparmor.service; „Linux“ saugos modulis, suteikiantis reikiamą prieigą. Išvardinti paslaugos priklausomybes naudojant Linux systemctl su sąrašo priklausomybės komandos ir paslaugos pavadinimas.

systemctl list-dependencies ssh.service

Taigi, jei norite iš naujo paleisti ssh.service, kai iš naujo paleidžiate apparmor.service, tada apparmor.service failo skiltyje [Unit] turite įtraukti parinktį PartOf, BindsTo arba Requires kartu su paslaugos pavadinimu.

Atidarykite failą apparmor.service.

sudo nano / lib / sisteminis / sistema / apparmor.service

Skiltyje [Unit] pridėkite šią eilutę.

Dalis =ssh.service

Išsaugokite failą ir vykdykite komandą daemon-reload.

sudo systemctl demon-reload

Dabar paleiskite iš naujo ssh.service ir tada patikrinkite apparmor.service žurnalas.

Jūs pastebėsite, apparmor.service iš naujo paleistas tuo pačiu metu ssh.service paleistas iš naujo.

Išvada

Norėdami iš naujo paleisti paslaugą ar paslaugas Linux sistemoje, systemctl komanda naudojama su perkrauti variantas. The systemctl yra komandų eilutės įrankis, naudojamas sisteminėms paslaugoms valdyti. The perkrauti parinktis paleidžia paslaugą ir sustabdo ją, suaktyvindama neaktyvią paslaugą. Tačiau galite iš naujo paleisti paslaugą jos nesuaktyvinę naudodami pabandykite - paleiskite iš naujo variantas.