Starta om en tjänst med systemctl restart Command

Starta Om En Tjanst Med Systemctl Restart Command



De systemd är en systemservicehanterare som används flitigt på Linux. Att klara av systemd tjänster, den systemctl kommandoradsverktyget används. Detta verktyg används också för att starta om alla systemtjänster.

Tjänster på Linux hanteras genom deras konfigurationsfil. Om ändringar görs i en tjänsts konfigurationsfil är det nödvändigt att initiera en omstart av tjänsten för att tillämpa ändringarna. Vid omstart av tjänsten utvärderar systemd konfigurationsfilen och tillämpar ändringarna.

I den här guiden kommer jag att gå igenom hur man använder systemctl för att starta om en tjänst i Linux.







Notera: Den här guiden innehåller kommandon och instruktioner som körs på Ubuntu 22.04. Kommandot kommer att fungera utan problem på distributioner som följer med systemd service manager.



Systemctl-omstartkommandot

De omstart kommandot stoppar i huvudsak en tjänst och startar den igen. Om tjänsten eller enheten inte är i drift kommer kommandot omstart att initiera dess drift.



Kommandot omstart tar inte bort de processer som är kopplade till tjänsten. Ta exemplet med filbeskrivningar, som är icke-negativa identifierare som tilldelas av operativsystemet till filerna som öppnas av en tjänst. Om du startar om en tjänst kommer filbeskrivningen som är länkad till den tjänsten att finnas kvar under omstartsprocessen.





Om du vill spola ut alla länkade processer till tjänsten måste du uttryckligen göra det sluta tjänsten och Start det igen.

Hur man startar om en tjänst

På Linux kan du starta om en tjänst genom att använda sudo systemctl kommandoradsverktyg med omstart alternativet och ange dess namn. Den allmänna syntaxen ges nedan:



sudo systemctl omstart [ Service namn ]

Du kommer behöva sudo privilegier för att starta om en tjänst.

Låt oss till exempel starta om ssh service.

sudo systemctl starta om ssh.service

För att starta om flera tjänster, lägg till varje tjänstnamn efter omstart kommando med ett mellanslag.

sudo systemctl starta om ssh.service smbd.service

Andra omstartskommandon finns i tabellen nedan:

försök-starta om Den stoppar eller startar den angivna tjänsten eller tjänsterna och om tjänsten inte körs startar den inte den
ladda om eller starta om Ladda om den eller de tjänster som stöds och om tjänsten inte stöds starta om den och aktivera den
försök-ladda om-eller-försök-starta om Ladda om den eller de tjänster som stöds och om tjänsten inte stöds starta om den utan att aktivera den

I ovanstående kommandon, .service förlängning är valfri.

Hur man automatiskt startar om en tjänst

På Linux, om en tjänst misslyckas, då systemd startade om det som standard. Icke desto mindre kan det i många fall vara nödvändigt att ändra sättet på vilket en tjänst startar om. Till exempel kan man behöva manuell åtgärd under felsökningsprocessen för den skräddarsydda tjänsten.

Systemd-enhetsfilerna eller tjänstefilerna finns på /etc/systemd/system eller /lib/systemd/system främst beroende på hur tjänsten skapas. För att lista enhetsfilerna på Linux, använd följande kommando:

ls / lib / systemd / systemet

Du kan se konfigurationsfilerna för olika tjänster. Låt oss öppna ssh.service fil med hjälp av nano redaktör.

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

Här kan du ändra Omstart miljö. Som standard är den inställd på vid misslyckande . Andra alternativ för att starta om en tjänst listas nedan:

  • Nej
  • alltid
  • på framgång
  • vid misslyckande
  • på onormalt
  • vid abort
  • på vakthund

Ett annat alternativ i enhetens servicefil är Starta omSek som används för att ange antalet sekunder efter vilket tjänsten ska starta om.

[ Service ]

Omstart =alltid

Starta omSek = 5

Dessa instruktioner innebär att tjänsten startas om vid uppstart och, om den avbryts, startas om efter 5 sekunder.

När du har ändrat inställningen, kör följande kommando för att tillämpa ändringarna.

sudo systemctl reload-daemon

Andra viktiga inställningar att ta hänsyn till är StartLimitIntervalSec och StartLimitBurst . Dessa alternativ är användbara för att ställa in maximal tid och maximala försök att starta om en tjänst.

[ Enhet ]

StartLimitIntervalSec = 300

StartLimitBurst = 4

Ovanstående instruktion indikerar att systemd automatiskt kommer att sluta försöka starta om en tjänst om den inte startar efter 300 sekunder och 4 försök igen.

För att kontrollera om tjänsten startar om efter 5 sekunder eller inte, avbryt tjänsten med hjälp av tjänstens PID och döda kommando.

sudo döda -9 [ PID ]

Efter 5 sekunder kommer tjänsten att startas om; Använd journalctl kommando för att kontrollera statusen för ssh.service .

journalctl -i ssh.service

Hur man startar om en tjänst när beroende tjänst startar om

På Linux är många tjänster beroende av varandra, och på samma sätt måste de startas om när en beroende tjänst startas om.

Det finns tre olika alternativ i enhetstjänstfilen för att starta om en tjänst, med en beroende tjänst omstartad.

  • Del av
  • BindsTo
  • Kräver

Alla dessa alternativ utför samma uppgift.

Låt oss ta ett exempel på ssh.service som beror på apparmor.service; en Linux-säkerhetsmodul för att ge nödvändig åtkomst. För att lista beroenden för en tjänst i Linux-användning systemctl med listberoenden kommando och tjänstnamn.

systemctl listberoenden ssh.service

Så om du vill starta om ssh.service när du startar om apparmor.service, måste du inkludera alternativet PartOf, BindsTo eller Requires tillsammans med tjänstens namn i avsnittet [Unit] i apparmor.service-filen.

Öppna filen apparmor.service.

sudo nano / lib / systemd / systemet / apparmor.service

Lägg till följande rad i avsnittet [Enhet].

Del av =ssh.tjänst

Spara filen och kör kommandot daemon-reload.

sudo systemctl daemon-reload

Starta nu om ssh.service och kontrollera sedan apparmor.service logga.

Du kommer att märka apparmor.service startade om samtidigt ssh.service startas om.

Slutsats

För att starta om en tjänst eller tjänster på Linux, systemctl kommandot används med omstart alternativ. De systemctl är ett kommandoradsverktyg som används för att hantera systemd-tjänster. De omstart alternativet startar en tjänst och stoppar den, aktiverar en inaktiv tjänst. Du kan dock starta om en tjänst utan att aktivera den genom att använda försök-starta om alternativ.