Reštartujte službu pomocou príkazu systemctl restart

Restartujte Sluzbu Pomocou Prikazu Systemctl Restart



The systemd je správca systémových služieb, ktorý je široko používaný v systéme Linux. Zariadiť systemd služby, systemctl používa sa nástroj príkazového riadka. Tento nástroj sa tiež používa na reštartovanie akejkoľvek služby systemd.

Služby v systéme Linux sú spravované prostredníctvom ich konfiguračného súboru. Ak sa vykonajú zmeny v konfiguračnom súbore služby, je potrebné spustiť reštart služby, aby sa zmeny uplatnili. Po reštartovaní služby systemd prehodnotí konfiguračný súbor a použije úpravy.

V tejto príručke sa budem zaoberať tým, ako použiť systemctl na reštartovanie služby v systéme Linux.







Poznámka: Táto príručka obsahuje príkazy a pokyny, ktoré sa vykonávajú na Ubuntu 22.04. Príkaz bude fungovať bez problémov na distribúciách, ktoré sa dodávajú so správcom služieb systemd.



Príkaz na reštart systemctl

The reštart príkaz v podstate zastaví službu a znova ju spustí. Ak služba alebo jednotka nie je funkčná, príkaz na reštart spustí jej činnosť.



Príkaz reštart neodstráni procesy, ktoré sú prepojené so službou. Vezmite si príklad deskriptorov súborov, čo sú nezáporné identifikátory priradené operačným systémom k súborom otvoreným službou. Ak reštartujete službu, deskriptor súboru prepojený s touto službou tam zostane počas procesu reštartovania.





Ak chcete vyprázdniť všetky prepojené procesy so službou, musíte to urobiť výslovne zastaviť službu a začať znova.

Ako reštartovať službu

V systéme Linux môžete službu reštartovať pomocou sudo systemctl nástroj príkazového riadka s reštart možnosť a zadanie jej názvu. Všeobecná syntax je uvedená nižšie:



sudo reštart systemctl [ názov služby ]

Budete potrebovať sudo oprávnenia reštartovať službu.

Napríklad reštartujeme ssh služby.

sudo systemctl reštartujte ssh.service

Ak chcete reštartovať viacero služieb, pridajte názov každej služby za reštart príkaz s medzerou.

sudo systemctl reštart ssh.service smbd.service

Ďalšie príkazy na reštart sú uvedené v tabuľke nižšie:

skúste reštartovať Zastaví alebo spustí určenú službu alebo služby a ak služba nie je spustená, nespustí ju
reload-or-restart Znova načítajte podporovanú službu alebo služby a ak služba nie je podporovaná, reštartujte ju a aktivujte
skúste-reload-or-try-restart Znova načítajte podporovanú službu alebo služby a ak služba nie je podporovaná, reštartujte ju bez jej aktivácie

Vo vyššie uvedených príkazoch je .servis rozšírenie je voliteľné.

Ako automaticky reštartovať službu

Ak v systéme Linux zlyhá služba, potom systemd predvolene ho reštartoval. V mnohých prípadoch však môže byť potrebné upraviť spôsob, akým sa služba reštartuje. Napríklad môže byť potrebná manuálna akcia počas procesu ladenia služby na mieru.

Súbory systémových jednotiek alebo servisné súbory sú umiestnené na /etc/systemd/system alebo /lib/systemd/system hlavne v závislosti od toho, ako je služba vytvorená. Ak chcete zobraziť zoznam súborov jednotiek v systéme Linux, použite nasledujúci príkaz:

ls / lib / systemd / systém

Môžete vidieť konfiguračné súbory rôznych služieb. Otvorme si ssh.service súbor pomocou nano editor.

sudo nano / lib / systemd / systém / ssh.service

Tu môžete upraviť Reštart nastavenie. Štandardne je nastavená na pri zlyhaní . Ďalšie možnosti reštartovania služby sú uvedené nižšie:

  • Nie
  • vždy
  • pri úspechu
  • pri zlyhaní
  • na-nenormálne
  • pri prerušení
  • strážny pes

Ďalšou možnosťou v súbore služieb jednotky je RestartSec ktorý sa používa na určenie počtu sekúnd, po ktorých sa služba reštartuje.

[ servis ]

Reštart = vždy

RestartSec = 5

Tieto pokyny znamenajú, že služba sa reštartuje pri zavádzaní systému a v prípade prerušenia sa reštartuje po 5 sekundách.

Po úprave nastavenia vykonajte nasledujúci príkaz, aby ste použili zmeny.

sudo systemctl reload-daemon

Ďalšie dôležité nastavenia, ktoré je potrebné vziať do úvahy, sú StartLimitIntervalSec a StartLimitBurst . Tieto možnosti sú užitočné na nastavenie maximálneho času a maximálneho počtu opakovaní na reštartovanie služby.

[ Jednotka ]

StartLimitIntervalSec = 300

StartLimitBurst = 4

Vyššie uvedená inštrukcia naznačuje, že systemd automaticky zastaví pokus o reštart služby, ak sa nespustí po 300 sekundách a 4 pokusoch.

Ak chcete overiť, či sa služba reštartuje po 5 sekundách alebo nie, ukončite službu pomocou PID služby a zabiť príkaz.

sudo zabiť -9 [ PID ]

Po 5 sekundách sa služba reštartuje; Použi journalctl príkaz na kontrolu stavu ssh.service .

journalctl -v ssh.service

Ako reštartovať službu pri reštartovaní závislej služby

V systéme Linux je veľa služieb vzájomne závislých a podobne sa vyžaduje ich reštart, keď sa reštartuje závislá služba.

V súbore služieb jednotky sú tri rôzne možnosti na reštartovanie služby so reštartovaním závislej služby.

  • Časť
  • BindsTo
  • Vyžaduje

Všetky tieto možnosti vykonávajú rovnakú úlohu.

Vezmime si príklad ssh.service, ktorý závisí od apparmor.service; bezpečnostný modul Linux na zabezpečenie potrebného prístupu. Ak chcete zobraziť zoznam závislostí služby v systéme Linux systemctl s zoznam-závislosti názov príkazu a služby.

systemctl list-dependencies ssh.service

Ak teda chcete reštartovať službu ssh.service pri reštartovaní služby apparmor.service, musíte do časti [Unit] súboru apparmor.service zahrnúť možnosť PartOf, BindsTo alebo Requires spolu s názvom služby.

Otvorte súbor apparmor.service.

sudo nano / lib / systemd / systém / apparmor.servis

Pridajte nasledujúci riadok do sekcie [Jednotka].

Časť =ssh.service

Uložte súbor a vykonajte príkaz daemon-reload.

sudo systemctl daemon-reload

Teraz reštartujte ssh.service a potom skontrolujte apparmor.servis log.

Všimnete si apparmor.servis reštartovaný v rovnakom čase ssh.service reštartovaný.

Záver

Ak chcete reštartovať službu alebo služby v systéme Linux, systemctl príkaz sa používa s reštart možnosť. The systemctl je nástroj príkazového riadka, ktorý sa používa na správu služieb systemd. The reštart možnosť spustí službu a potom ju zastaví, čím sa aktivuje neaktívna služba. Službu však môžete reštartovať bez jej aktivácie pomocou skúste reštartovať možnosť.