Indítson újra egy szolgáltatást a systemctl restart paranccsal

Inditson Ujra Egy Szolgaltatast A Systemctl Restart Paranccsal



A systemd egy rendszerszolgáltatás-kezelő, amelyet széles körben használnak Linuxon. Menedzselni systemd szolgáltatások, a systemctl parancssori segédprogramot használunk. Ez az eszköz bármely rendszerszolgáltatás újraindítására is használható.

A Linux szolgáltatásait a konfigurációs fájljukon keresztül kezelik. Ha módosításokat hajtanak végre egy szolgáltatás konfigurációs fájljában, akkor a módosítások alkalmazásához újra kell indítani a szolgáltatást. A szolgáltatás újraindításakor a systemd újraértékeli a konfigurációs fájlt és alkalmazza a módosításokat.

Ebben az útmutatóban bemutatom, hogyan használhatom a systemctl-t egy szolgáltatás újraindításához Linux alatt.







Jegyzet: Ez az útmutató az Ubuntu 22.04 rendszeren végrehajtott parancsokat és utasításokat tartalmazza. A parancs probléma nélkül fog működni a systemd szolgáltatáskezelőhöz tartozó disztribúciókon.



A systemctl újraindítja a parancsot

A újrakezd parancs lényegében leállít egy szolgáltatást, és újraindítja. Ha a szolgáltatás vagy az egység nem működik, az újraindítási parancs elindítja a működését.



A restart parancs nem távolítja el a szolgáltatáshoz kapcsolódó folyamatokat. Vegyük például a fájlleírókat, amelyek nem negatív azonosítók, amelyeket az operációs rendszer rendelt a szolgáltatás által megnyitott fájlokhoz. Ha újraindít egy szolgáltatást, a szolgáltatáshoz kapcsolódó fájlleíró ott marad az újraindítási folyamat során.





Ha ki akarja törölni a szolgáltatáshoz kapcsolódó összes folyamatot, akkor ezt kifejezetten meg kell tennie állj meg a szolgáltatás és Rajt újra.

Hogyan indítsunk újra egy szolgáltatást

Linuxon újraindíthat egy szolgáltatást a sudo systemctl parancssori eszköz a újrakezd opciót, és adja meg a nevét. Az általános szintaxis az alábbiakban található:



sudo systemctl újraindítás [ szolgáltatás neve ]

Szükséged lesz sudo jogosultságokat a szolgáltatás újraindításához.

Például indítsuk újra a ssh szolgáltatás.

sudo systemctl indítsa újra az ssh.service-t

Több szolgáltatás újraindításához fűzze hozzá az egyes szolgáltatások nevét a következőhöz újrakezd parancsot szóközzel.

sudo systemctl indítsa újra az ssh.service smbd.service fájlt

A többi újraindítási parancsot az alábbi táblázat tartalmazza:

próbáld újraindítani Leállítja vagy elindítja a megadott szolgáltatást vagy szolgáltatásokat, és ha a szolgáltatás nem fut, akkor nem indítja el
újratöltés vagy újraindítás Töltse be újra a támogatott szolgáltatást vagy szolgáltatásokat, és ha a szolgáltatás nem támogatott, indítsa újra és aktiválja
try-reload-or-try-restart Töltse be újra a támogatott szolgáltatást vagy szolgáltatásokat, és ha a szolgáltatás nem támogatott, akkor aktiválása nélkül indítsa újra

A fenti parancsokban a .szolgáltatás a bővítés nem kötelező.

A szolgáltatás automatikus újraindítása

Linuxon, ha egy szolgáltatás meghiúsul, akkor a systemd alapértelmezés szerint újraindította. Ennek ellenére sok esetben szükség lehet a szolgáltatás újraindítási módjának módosítására. Például kézi műveletre lehet szükség az egyedi szolgáltatás hibakeresési folyamata során.

A rendszeregység fájlok vagy a szervizfájlok itt találhatók /etc/systemd/system vagy /lib/systemd/system főként a szolgáltatás létrehozásának módjától függően. Az egységfájlok listázásához Linuxon használja a következő parancsot:

ls / lib / systemd / rendszer

Megtekintheti a különböző szolgáltatások konfigurációs fájljait. Nyissuk meg a ssh.service fájl segítségével a nano szerkesztő.

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

Itt módosíthatja a Újrakezd beállítás. Alapértelmezés szerint a következőre van állítva meghibásodás esetén . A szolgáltatás újraindításának további lehetőségei az alábbiak:

  • Nem
  • mindig
  • on-siker
  • meghibásodás esetén
  • on-abnormális
  • megszakításkor
  • őrző kutyán

Egy másik lehetőség az egységszolgáltatási fájlban az RestartSec amivel megadható, hogy hány másodperc múlva induljon újra a szolgáltatás.

[ Szolgáltatás ]

Újrakezd = mindig

RestartSec = 5

Ezek az utasítások azt jelentik, hogy a szolgáltatás rendszerindításkor újraindul, és ha megszakad, 5 másodperc múlva újraindul.

A beállítás módosítása után hajtsa végre a következő parancsot a módosítások alkalmazásához.

sudo systemctl reload-démon

További fontos beállításokat kell figyelembe venni StartLimitIntervalSec és StartLimitBurst . Ezek a beállítások hasznosak a szolgáltatás újraindításához szükséges maximális idő és a maximális újraindítási idő beállításához.

[ Mértékegység ]

StartLimitIntervalSec = 300

StartLimitBurst = 4

A fenti utasítás azt jelzi, hogy a systemd automatikusan leállítja a szolgáltatás újraindításának próbálkozását, ha az 300 másodperc és 4 újrapróbálkozás után nem indul el.

Annak ellenőrzéséhez, hogy a szolgáltatás 5 másodperc után újraindul-e vagy sem, zárja le a szolgáltatást a szolgáltatás PID-jének és a megöl parancs.

sudo megöl -9 [ PID ]

5 másodperc elteltével a szolgáltatás újraindul; használja a Journalctl paranccsal ellenőrizheti az állapotát ssh.service .

Journalctl -ban ben ssh.service

A szolgáltatás újraindítása, ha a függő szolgáltatás újraindul

Linuxon sok szolgáltatás kölcsönösen függ egymástól, és hasonlóképpen újra kell indítani őket, ha egy függő szolgáltatást újraindítanak.

Az egység szolgáltatásfájljában három különböző lehetőség található a szolgáltatás újraindítására, egy függő szolgáltatás újraindításával.

  • Része
  • BindsTo
  • Igényel

Mindezek a lehetőségek ugyanazt a feladatot látják el.

Vegyünk egy példát az ssh.service-re, amely az apparmor.service-től függ; egy Linux biztonsági modul a szükséges hozzáférés biztosításához. Egy szolgáltatás függőségének felsorolása Linux-használatban systemctl val vel lista-függőségek parancs és szolgáltatás neve.

systemctl list-dependencies ssh.service

Tehát, ha az apparmor.service újraindításakor újra szeretné indítani az ssh.service-t, akkor az apparmor.service fájl [Unit] szakaszában a PartOf, BindsTo vagy Requires beállítást a szolgáltatásnévvel együtt kell megadnia.

Nyissa meg az apparmor.service fájlt.

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

Adja hozzá a következő sort az [Unit] szakaszhoz.

Része =ssh.service

Mentse el a fájlt, és hajtsa végre a daemon-reload parancsot.

sudo systemctl démon-reload

Most indítsa újra a ssh.service majd ellenőrizze a apparmor.service log.

Észre fogja venni a apparmor.service egyidejűleg újraindult a ssh.service újraindult.

Következtetés

Egy szolgáltatás vagy szolgáltatások Linux rendszeren történő újraindításához a systemctl parancsot a újrakezd választási lehetőség. A systemctl a rendszerszolgáltatások kezelésére szolgáló parancssori segédprogram. A újrakezd opció elindít egy szolgáltatást, majd leállítja, aktiválva egy inaktív szolgáltatást. A szolgáltatást azonban újraindíthatja anélkül, hogy aktiválná a funkció használatával próbáld újraindítani választási lehetőség.