Käynnistä palvelu uudelleen systemctl restart -komennolla

Kaynnista Palvelu Uudelleen Systemctl Restart Komennolla



The systemd on järjestelmäpalveluhallinta, jota käytetään laajasti Linuxissa. Hallita systemd palvelut, systemctl komentorivi-apuohjelmaa käytetään. Tätä työkalua käytetään myös minkä tahansa järjestelmäpalvelun uudelleenkäynnistämiseen.

Palveluita Linuxissa hallitaan niiden määritystiedostojen kautta. Jos palvelun asetustiedostoon tehdään muutoksia, on palvelun käynnistäminen uudelleenkäynnistettävä muutosten soveltamiseksi. Kun palvelu käynnistetään uudelleen, systemd arvioi konfigurointitiedoston uudelleen ja ottaa muutokset käyttöön.

Tässä oppaassa käyn läpi, kuinka systemctl:ää käytetään palvelun käynnistämiseen uudelleen Linuxissa.







Huomautus: Tämä opas sisältää komennot ja ohjeet, jotka suoritetaan Ubuntu 22.04:ssä. Komento toimii ilman ongelmia systemd-palvelunhallinnan mukana tulevissa jakeluissa.



Systemctl käynnistää komennon uudelleen

The uudelleenkäynnistää komento käytännössä pysäyttää palvelun ja käynnistää sen uudelleen. Jos palvelu tai yksikkö ei ole toiminnassa, uudelleenkäynnistyskomento käynnistää sen toiminnan.



Restart-komento ei poista palveluun linkitettyjä prosesseja. Otetaan esimerkiksi tiedostokuvaajat, jotka ovat ei-negatiivisia tunnisteita, jotka käyttöjärjestelmä määrittää palvelun avaamille tiedostoille. Jos käynnistät palvelun uudelleen, palveluun linkitetty tiedostokuvaaja pysyy siellä uudelleenkäynnistyksen aikana.





Jos haluat huuhdella kaikki palveluun linkitetyt prosessit, sinun on tehtävä se erikseen lopettaa palvelu ja alkaa se taas.

Palvelun uudelleenkäynnistäminen

Linuxissa voit käynnistää palvelun uudelleen käyttämällä sudo systemctl komentorivityökalun kanssa uudelleenkäynnistää vaihtoehto ja määritä sen nimi. Yleinen syntaksi on annettu alla:



sudo systemctl uudelleenkäynnistys [ palvelun nimi ]

Tarvitset sudo oikeudet käynnistää palvelu uudelleen.

Esimerkiksi, käynnistetään uudelleen ssh palvelua.

sudo systemctl käynnistä ssh.service uudelleen

Jos haluat käynnistää useita palveluita uudelleen, lisää kunkin palvelun nimi -merkin perään uudelleenkäynnistää komento välilyönnillä.

sudo systemctl käynnistä ssh.service smbd.service uudelleen

Muut uudelleenkäynnistyskomennot on annettu alla olevassa taulukossa:

kokeile-käynnistä uudelleen Se pysäyttää tai käynnistää määritetyn palvelun tai palvelut ja jos palvelu ei ole käynnissä, se ei käynnistä sitä
lataa tai käynnistä uudelleen Lataa tuettu palvelu tai palvelut uudelleen ja jos palvelua ei tueta, käynnistä se uudelleen ja aktivoi se
kokeile-lataa-tai-yritä-käynnistää uudelleen Lataa tuettu palvelu tai palvelut uudelleen ja jos palvelua ei tueta, käynnistä se uudelleen aktivoimatta sitä

Yllä olevissa komennoissa .palvelu laajennus on valinnainen.

Palvelun automaattinen uudelleenkäynnistys

Jos palvelu epäonnistuu Linuxissa, systemd käynnistänyt sen oletuksena uudelleen. Siitä huolimatta monissa tapauksissa voi olla tarpeen muuttaa tapaa, jolla palvelu käynnistyy uudelleen. Esimerkiksi räätälöidyn palvelun virheenkorjausprosessin aikana voi tarvita manuaalisia toimia.

Systemd-yksikön tiedostot tai huoltotiedostot sijaitsevat /etc/systemd/system tai /lib/systemd/system lähinnä sen mukaan, miten palvelu on luotu. Listaaksesi yksikkötiedostot Linuxissa käytä seuraavaa komentoa:

ls / lib / systemd / järjestelmä

Näet eri palveluiden asetustiedostot. Avataan ssh.service tiedosto käyttäen nano toimittaja.

sudo nano / lib / systemd / järjestelmä / ssh.service

Täällä voit muokata Uudelleenkäynnistää asetusta. Oletuksena se on asetettu vikatilanteessa . Muut vaihtoehdot palvelun käynnistämiseksi uudelleen on lueteltu alla:

  • Ei
  • aina
  • onnistuneena
  • vikatilanteessa
  • epänormaalia
  • kesken abortin
  • vahtikoirassa

Toinen vaihtoehto yksikköpalvelutiedostossa on RestartSec jota käytetään määrittämään sekuntien lukumäärä, jonka jälkeen palvelu käynnistyy uudelleen.

[ Palvelu ]

Uudelleenkäynnistää = aina

RestartSec = 5

Nämä ohjeet tarkoittavat, että palvelu käynnistyy uudelleen käynnistyksen yhteydessä, ja jos se keskeytyy, se käynnistetään uudelleen 5 sekunnin kuluttua.

Kun olet muokannut asetusta, ota muutokset käyttöön suorittamalla seuraava komento.

sudo systemctl reload-daemon

Muita tärkeitä huomioitavia asetuksia ovat StartLimitIntervalSec ja StartLimitBurst . Nämä vaihtoehdot ovat hyödyllisiä määritettäessä enimmäisaika ja uudelleenkäynnistysyritysten enimmäismäärä.

[ Yksikkö ]

StartLimitIntervalSec = 300

StartLimitBurst = 4

Yllä oleva ohje osoittaa, että systemd lopettaa automaattisesti palvelun käynnistämisen uudelleen, jos se ei käynnisty 300 sekunnin ja 4 uudelleenyrityksen jälkeen.

Varmista, että palvelu käynnistyy uudelleen 5 sekunnin kuluttua vai ei, lopeta palvelu käyttämällä palvelun PID-tunnusta ja tappaa komento.

sudo tappaa -9 [ PID ]

5 sekunnin kuluttua palvelu käynnistetään uudelleen; Käytä Journalctl -komento tarkistaaksesi tilan ssh.service .

Journalctl -sisään ssh.service

Palvelun käynnistäminen uudelleen, kun riippuvainen palvelu käynnistyy uudelleen

Linuxissa monet palvelut ovat toisistaan ​​riippuvaisia, ja vastaavasti ne on käynnistettävä uudelleen, kun riippuvainen palvelu käynnistetään uudelleen.

Yksikköpalvelutiedostossa on kolme eri vaihtoehtoa palvelun käynnistämiseksi uudelleen, kun riippuvainen palvelu käynnistetään uudelleen.

  • Osa
  • BindsTo
  • Vaatii

Kaikki nämä vaihtoehdot suorittavat saman tehtävän.

Otetaan esimerkki ssh.servicesta, joka riippuu apparmor.servicesta; Linux-suojausmoduuli, joka tarjoaa tarvittavan pääsyn. Luettelo palvelun riippuvuuksista Linux-käytössä systemctl kanssa listariippuvuudet komennon ja palvelun nimen.

systemctl list-dependencies ssh.service

Joten jos haluat käynnistää ssh.service-palvelun uudelleen, kun käynnistät apparmor.service-tiedoston uudelleen, sinun on sisällytettävä PartOf-, BindsTo- tai Requires-vaihtoehto palvelun nimen lisäksi apparmor.service-tiedoston [Unit]-osioon.

Avaa apparmor.service-tiedosto.

sudo nano / lib / systemd / järjestelmä / apparmor.service

Lisää seuraava rivi [Yksikkö]-osioon.

Osa =ssh.palvelu

Tallenna tiedosto ja suorita komento daemon-reload.

sudo systemctl daemon-reload

Käynnistä nyt uudelleen ssh.service ja tarkista sitten apparmor.service Hirsi.

Tulet huomaamaan apparmor.service käynnistettiin uudelleen samaan aikaan ssh.service käynnistetty uudelleen.

Johtopäätös

Jos haluat käynnistää palvelun tai palvelut uudelleen Linuxissa, systemctl komentoa käytetään kanssa uudelleenkäynnistää vaihtoehto. The systemctl on komentorivityökalu, jota käytetään systemd-palvelujen hallintaan. The uudelleenkäynnistää -vaihtoehto käynnistää palvelun ja sitten pysäyttää sen aktivoiden ei-aktiivisen palvelun. Voit kuitenkin käynnistää palvelun uudelleen aktivoimatta sitä käyttämällä kokeile-käynnistä uudelleen vaihtoehto.