Ponovno pokrenite uslugu pomoću naredbe systemctl restart

Ponovno Pokrenite Uslugu Pomocu Naredbe Systemctl Restart



The systemd je upravitelj sistemskih usluga koji se široko koristi u Linuxu. Upravljati systemd usluge, systemctl koristi se uslužni program naredbenog retka. Ovaj se alat također koristi za ponovno pokretanje bilo koje systemd usluge.

Uslugama na Linuxu upravlja se putem njihove konfiguracijske datoteke. Ako se naprave izmjene u konfiguracijskoj datoteci usluge, potrebno je pokrenuti ponovno pokretanje usluge kako bi se izmjene primijenile. Nakon ponovnog pokretanja usluge, systemd ponovno procjenjuje konfiguracijsku datoteku i primjenjuje izmjene.

U ovom vodiču ću proći kroz kako koristiti systemctl za ponovno pokretanje usluge u Linuxu.







Bilješka: Ovaj vodič uključuje naredbe i upute koje se izvršavaju na Ubuntu 22.04. Naredba će raditi bez ikakvih problema na distribucijama koje dolaze s upraviteljem usluga systemd.



Systemctl restart naredba

The ponovno pokrenuti naredba u biti zaustavlja uslugu i ponovno je pokreće. Ako usluga ili jedinica ne radi, naredba za ponovno pokretanje pokrenut će njen rad.



Naredba ponovnog pokretanja ne uklanja procese koji su povezani s uslugom. Uzmimo primjer deskriptora datoteka, koji su nenegativni identifikatori koje operativni sustav dodjeljuje datotekama koje otvara usluga. Ako ponovno pokrenete uslugu, deskriptor datoteke povezan s tom uslugom ostat će tamo tijekom procesa ponovnog pokretanja.





Ako želite isprazniti sve procese povezane s uslugom, to morate izričito učiniti Stop usluga i početak ponovno to.

Kako ponovno pokrenuti uslugu

Na Linuxu možete ponovno pokrenuti uslugu pomoću sudo systemctl alat naredbenog retka s ponovno pokrenuti opcija i navođenje njenog naziva. Opća sintaksa data je u nastavku:



sudo systemctl ponovno pokretanje [ naziv usluge ]

Trebat će vam sudo privilegije za ponovno pokretanje usluge.

Na primjer, ponovno pokrenimo ssh servis.

sudo systemctl ponovno pokrenite ssh.service

Za ponovno pokretanje više usluga, dodajte naziv svake usluge iza ponovno pokrenuti naredba s razmakom.

sudo systemctl ponovno pokrenite ssh.service smbd.service

Ostale naredbe za ponovno pokretanje dane su u tablici ispod:

pokušaj-ponovno pokretanje Zaustavlja ili pokreće navedenu uslugu ili usluge, a ako usluga nije pokrenuta, ne pokreće je
reload-or-restart Ponovno učitajte podržanu uslugu ili usluge, a ako usluga nije podržana, ponovno je pokrenite i aktivirajte
probaj-reload-ili-try-restart Ponovno učitajte podržanu uslugu ili usluge, a ako usluga nije podržana, ponovno je pokrenite bez aktivacije

U gornjim naredbama, .servis proširenje nije obavezno.

Kako automatski ponovno pokrenuti uslugu

Na Linuxu, ako usluga ne uspije, tada je systemd ponovno pokrenuo prema zadanim postavkama. Ipak, u mnogim slučajevima može biti potrebno promijeniti način na koji se usluga ponovno pokreće. Na primjer, možda će trebati ručna radnja tijekom procesa uklanjanja pogrešaka prilagođene usluge.

Datoteke jedinice systemd ili servisne datoteke nalaze se na /etc/systemd/sustav ili /lib/systemd/sustav uglavnom ovisno o tome kako je usluga kreirana. Za popis datoteka jedinica u Linuxu koristite sljedeću naredbu:

ls / lib / systemd / sustav

Možete vidjeti konfiguracijske datoteke različitih usluga. Otvorimo ssh.usluga datoteka pomoću nano urednik.

sudo nano / lib / systemd / sustav / ssh.usluga

Ovdje možete izmijeniti Ponovno pokretanje postavljanje. Prema zadanim postavkama postavljeno je na na-neuspjeh . Ostale opcije za ponovno pokretanje usluge navedene su u nastavku:

  • Ne
  • stalno
  • na-uspjeh
  • na-neuspjeh
  • na-nenormalan
  • na-prekidati
  • on-čuvar

Druga opcija u datoteci usluge jedinice je RestartSec koji se koristi za određivanje broja sekundi nakon kojih će se servis ponovno pokrenuti.

[ Servis ]

Ponovno pokretanje =uvijek

RestartSec = 5

Ove upute znače da će se usluga ponovno pokrenuti pri pokretanju i, ako se prekine, ponovno će se pokrenuti nakon 5 sekundi.

Nakon izmjene postavke, izvršite sljedeću naredbu za primjenu promjena.

sudo systemctl ponovno učitavanje demona

Ostale važne postavke koje treba uzeti u obzir su StartLimitIntervalSec i StartLimitBurst . Ove su opcije korisne za postavljanje maksimalnog vremena i maksimalnog broja ponovnih pokušaja za ponovno pokretanje usluge.

[ Jedinica ]

StartLimitIntervalSec = 300

StartLimitBurst = 4

Gornja uputa pokazuje da će systemd automatski prestati pokušavati ponovno pokrenuti uslugu ako se ne pokrene nakon 300 sekundi i 4 ponovna pokušaja.

Da biste provjerili pokreće li se usluga ponovno nakon 5 sekundi ili ne, ukinite uslugu pomoću PID-a usluge i ubiti naredba.

sudo ubiti -9 [ PID ]

Nakon 5 sekundi, usluga će se ponovno pokrenuti; koristiti journalctl naredba za provjeru statusa ssh.usluga .

journalctl -u ssh.usluga

Kako ponovno pokrenuti uslugu kada se ovisna usluga ponovno pokrene

U Linuxu su mnoge usluge međusobno ovisne i slično, potrebno ih je ponovno pokrenuti kada se ponovno pokrene ovisna usluga.

Postoje tri različite opcije u datoteci usluge jedinice za ponovno pokretanje usluge, s ponovnim pokretanjem ovisne usluge.

  • Dio
  • Veže se za
  • Zahtijeva

Sve ove opcije obavljaju isti zadatak.

Uzmimo primjer ssh.service koji ovisi o apparmor.service; Linux sigurnosni modul za pružanje potrebnog pristupa. Za popis ovisnosti usluge u Linuxu koristite systemctl s popis-zavisnosti naredba i naziv usluge.

systemctl popis ovisnosti ssh.service

Dakle, ako želite ponovno pokrenuti ssh.service kada ponovno pokrenete apparmor.service, tada trebate uključiti opciju PartOf, BindsTo ili Requires zajedno s nazivom usluge u odjeljku [Unit] datoteke apparmor.service.

Otvorite datoteku apparmor.service.

sudo nano / lib / systemd / sustav / apparmor.servis

Dodajte sljedeći redak u odjeljak [Jedinica].

Dio =ssh.usluga

Spremite datoteku i izvršite naredbu daemon-reload.

sudo systemctl daemon-reload

Sada ponovno pokrenite ssh.usluga a zatim provjerite apparmor.servis log.

Primijetit ćete apparmor.servis ponovno pokrenuo u isto vrijeme ssh.usluga ponovno pokrenut.

Zaključak

Za ponovno pokretanje usluge ili usluga na Linuxu, systemctl naredba se koristi s ponovno pokretanje opcija. The systemctl je uslužni program naredbenog retka koji se koristi za upravljanje systemd uslugama. The ponovno pokretanje opcija pokreće uslugu, a zatim je zaustavlja, aktivirajući neaktivnu uslugu. Međutim, možete ponovno pokrenuti uslugu bez aktivacije pomoću pokušaj-ponovno pokretanje opcija.