Znova zaženite storitev z ukazom systemctl restart

Znova Zazenite Storitev Z Ukazom Systemctl Restart



The systemd je upravitelj sistemskih storitev, ki se pogosto uporablja v Linuxu. Upravljati systemd storitve, the systemctl uporablja se pripomoček ukazne vrstice. To orodje se uporablja tudi za ponovni zagon katere koli storitve systemd.

Storitve v sistemu Linux se upravljajo prek njihove konfiguracijske datoteke. Če se spremeni konfiguracijska datoteka storitve, je treba znova zagnati storitev, da se spremembe uveljavijo. Po ponovnem zagonu storitve systemd ponovno oceni konfiguracijsko datoteko in uveljavi spremembe.

V tem priročniku bom obravnaval, kako uporabiti systemctl za ponovni zagon storitve v Linuxu.







Opomba: Ta priročnik vključuje ukaze in navodila, ki se izvajajo v Ubuntu 22.04. Ukaz bo deloval brez težav na distribucijah, ki so priložene upravitelju storitev systemd.



Ukaz za ponovni zagon systemctl

The ponovni zagon ukaz v bistvu ustavi storitev in jo znova zažene. Če storitev ali enota ne deluje, bo ukaz za ponovni zagon sprožil njeno delovanje.



Ukaz za ponovni zagon ne odstrani procesov, ki so povezani s storitvijo. Vzemimo primer deskriptorjev datotek, ki so nenegativni identifikatorji, ki jih operacijski sistem dodeli datotekam, ki jih odpre storitev. Če znova zaženete storitev, bo deskriptor datoteke, povezan s to storitvijo, ostal tam med postopkom ponovnega zagona.





Če želite izprazniti vse procese, povezane s storitvijo, morate to izrecno storiti stop storitev in začetek to spet.

Kako znova zagnati storitev

V sistemu Linux lahko znova zaženete storitev z uporabo sudo systemctl orodje ukazne vrstice z ponovni zagon možnost in določite njeno ime. Splošna sintaksa je podana spodaj:



sudo ponovni zagon systemctl [ ime storitve ]

Boste potrebovali sudo privilegije za ponovni zagon storitve.

Na primer, znova zaženimo ssh storitev.

sudo systemctl znova zaženite ssh.service

Če želite znova zagnati več storitev, dodajte vsako ime storitve za ponovni zagon ukaz s presledkom.

sudo systemctl znova zaženite ssh.service smbd.service

Drugi ukazi za ponovni zagon so podani v spodnji tabeli:

poskusi-ponovno zaženi Ustavi ali zažene določeno storitev ali storitve in če se storitev ne izvaja, je ne zažene
znova naloži ali znova zaženi Ponovno naložite podprto storitev ali storitve in če storitev ni podprta, jo znova zaženite in aktivirajte
poskusi-ponovno naloži-ali-poskusi-ponovno zaženi Ponovno naložite podprto storitev ali storitve in če storitev ni podprta, jo znova zaženite, ne da bi jo aktivirali

V zgornjih ukazih je .storitev razširitev ni obvezna.

Kako samodejno znova zagnati storitev

V Linuxu, če storitev ne uspe, potem je systemd privzeto znova zagnal. Kljub temu bo v mnogih primerih morda treba spremeniti način ponovnega zagona storitve. Med postopkom odpravljanja napak storitve po meri lahko na primer potrebujete ročno ukrepanje.

Datoteke sistemske enote ali storitvene datoteke se nahajajo na /etc/systemd/system oz /lib/systemd/system predvsem odvisno od tega, kako je storitev ustvarjena. Za seznam datotek enote v Linuxu uporabite naslednji ukaz:

ls / lib / systemd / sistem

Ogledate si lahko konfiguracijske datoteke različnih storitev. Odprimo ssh.service datoteko z uporabo nano urednik.

sudo nano / lib / systemd / sistem / ssh.service

Tukaj lahko spremenite Ponovni zagon nastavitev. Privzeto je nastavljeno na ob neuspehu . Druge možnosti za ponovni zagon storitve so navedene spodaj:

  • št
  • nenehno
  • na-uspeh
  • ob neuspehu
  • na-nenormalno
  • ob prekinitvi
  • on-watchdog

Druga možnost v servisni datoteki enote je RestartSec ki se uporablja za določitev števila sekund, po katerih se bo storitev znova zagnala.

[ Storitev ]

Ponovni zagon =vedno

RestartSec = 5

Ta navodila pomenijo, da se bo storitev znova zagnala ob zagonu in, če bo prekinjena, se bo znova zagnala po 5 sekundah.

Ko spremenite nastavitev, izvedite naslednji ukaz, da uveljavite spremembe.

sudo sistemski demon za ponovno nalaganje

Druge pomembne nastavitve, ki jih je treba upoštevati, so StartLimitIntervalSec in StartLimitBurst . Te možnosti so uporabne za nastavitev največjega časa in največjega števila ponovnih poskusov za ponovni zagon storitve.

[ Enota ]

StartLimitIntervalSec = 300

StartLimitBurst = 4

Zgornje navodilo kaže, da bo systemd samodejno prenehal poskušati znova zagnati storitev, če se ta ne zažene po 300 sekundah in 4 ponovnih poskusih.

Če želite preveriti, ali se storitev znova zažene po 5 sekundah ali ne, zaustavite storitev z uporabo PID storitve in ubiti ukaz.

sudo ubiti -9 [ PID ]

Po 5 sekundah se bo storitev znova zagnala; uporabi journalctl ukaz za preverjanje statusa ssh.service .

journalctl -in ssh.service

Kako znova zagnati storitev, ko se odvisna storitev znova zažene

V Linuxu je veliko storitev medsebojno odvisnih in podobno jih je treba znova zagnati, ko se znova zažene odvisna storitev.

V servisni datoteki enote so na voljo tri različne možnosti za ponovni zagon storitve, s ponovnim zagonom odvisne storitve.

  • PartOf
  • BindsTo
  • Zahteva

Vse te možnosti opravljajo isto nalogo.

Vzemimo primer ssh.service, ki je odvisen od apparmor.service; varnostni modul Linux za zagotavljanje potrebnega dostopa. Za seznam odvisnosti storitve v Linuxu uporabite systemctl z seznam odvisnosti ukaz in ime storitve.

sistemski seznam odvisnosti ssh.service

Torej, če želite znova zagnati ssh.service, ko znova zaženete apparmor.service, potem morate vključiti možnost PartOf, BindsTo ali Requires skupaj z imenom storitve v razdelku [Enota] datoteke apparmor.service.

Odprite datoteko apparmor.service.

sudo nano / lib / systemd / sistem / apparmor.storitev

Dodajte naslednjo vrstico v razdelek [Enota].

PartOf =ssh.service

Shranite datoteko in izvedite ukaz daemon-reload.

sudo systemctl daemon-reload

Zdaj znova zaženite ssh.service in nato preverite apparmor.storitev dnevnik.

Opazili boste, apparmor.storitev znova zagnali ob istem času ssh.service znova zagnati.

Zaključek

Če želite znova zagnati storitev ali storitve v sistemu Linux, systemctl ukaz se uporablja z ponovni zagon možnost. The systemctl je pripomoček ukazne vrstice, ki se uporablja za upravljanje storitev systemd. The ponovni zagon možnost zažene storitev in jo nato ustavi ter aktivira neaktivno storitev. Vendar pa lahko znova zaženete storitev, ne da bi jo aktivirali, z uporabo poskusi-ponovno zaženi možnost.