Sisukord:
- Samm: Systemd pakutud meetodite kasutamine
- 2. samm: teenuse kontrollimise skriptide konfigureerimine ja kasutamine
- 3. samm: lõplikud mõtted
Video: Teenuse jälgimise skript Linuxi serveritele: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:50
Stabiilse ja alati töötava süsteemi olemasolu isegi Linuxi kasutamisel võib olla keeruline ülesanne.
Kaasaegsete tarkvarapakettide keerukuse ja halva kodeerimise tõttu võivad mõned protsessid paratamatult aeg -ajalt kokku kukkuda. See võib olla halb, kui kasutate serverit ja mõned inimesed usaldavad neid teenuseid.
Samm: Systemd pakutud meetodite kasutamine
Nagu te juba teate, kasutab enamik kaasaegseid Linuxi operatsioonisüsteeme systemd.
Kui te pole süsteemiga tuttav, on see vastavalt Vikipeediale järgmine:
"… Init -süsteem, mida kasutatakse Linuxi distributsioonides kasutaja ruumi käivitamiseks ja kõigi protsesside järgmiseks haldamiseks, mitte UNIX System V või Berkeley Software Distribution (BSD) init -süsteemide asemel.…"
Paljud inimesed vaidlevad endiselt, miks oli vaja vana hea init -süsteem selle keerukama protsessihaldussüsteemi vastu välja vahetada, kuid järgmisel lingil võib leida hea selgituse:
www.tecmint.com/systemd-replaces-init-in-l…
Kõige olulisem täiustus oleks see, et see suudab süsteemi avada kiiremini kui init, kuna samaaegne ja paralleelne töötlemine alglaadimisel, mitte aga järjestikune lähenemine
Süstemisse süvenemata peate protsessi lisamiseks süsteemile looma teenusefaili. Sellise faili süntaks võib ulatuda väga lihtsast kuni ülimalt keeruliseni ja me ei lähe üksikasjadesse. Põhiteenuse.service faili saamiseks piisab järgmiste kirjete kasutamisest:
[Ühik] Kirjeldus = applicationDocumentation = https://wikipedia.org/ After = local-fs.target network.target [Teenus] Tüüp = simpleExecStart =/usr/sbin/applicationExecReload =/usr/sbin/application reloadExecStop =/ usr/sbin/application stopRestart = alati [Install] WantedBy = multi-user.target
Asetage need kausta/lib/systemd/system kausta application.service.
Mida igaüks neist valikutest teeb, selgitatakse järgmisel lingil:
access.redhat.com/documentation/en-US/Red_…
Rakenduse käivitamiseks andke järgmine käsk:
sudo systemctl käivitage rakendus. teenus
Märkus:.service laienduse võib ära jätta.
Rakenduse peatamiseks tehke järgmist.
sudo systemctl stop application.service
Kui konfiguratsioonifaili on muudetud ja soovite seaded uuesti laadida:
sudo systemctl reload application.service
Rakenduse taaskäivitamiseks toimige järgmiselt.
sudo systemctl taaskäivitage rakendus. teenus
Automaatse käivitamise lubamiseks käivitamisel toimige järgmiselt.
sudo systemctl lubage application.service
Kui see on lubatud, proovib süsteemiprotsesside haldur rakendust käivitada süsteemifaili antud sätete alusel.
Selle keelamiseks kasutage sama käsku nagu eespool, kuid parameetriga „keela”.
Kui paigutate teenusefaili alati Restart =, siis jälgib systemd protsessi ja kui seda protsessiloendist ei leia, proovib see selle automaatselt taaskäivitada.
Kui asetate
RestartSec = 30
pärast taaskäivitusdirektiivi ootab see 30 sekundit, enne kui proovib protsessi taaskäivitada. See võib olla kasulik, kuna ebaõnnestunud teenuse/rakenduse pidev taaskäivitamise katse võib põhjustada süsteemi suure nõudluse (vealogide kirjutamine jne)
Nagu näete, pakub systemd juba mõningaid vahendeid protsesside jälgimiseks. Kuid mõnel juhul ei pruugi see olla piisav. Mis siis, kui protsess ei välju (see jääb siiski protsessiloendisse), kuid see ei reageeri. Sel juhul peate protsessi kontrollimiseks ja tõestamiseks vajama täiendavaid kontrolle.
Siin on abiks selle juhendi skriptid.
2. samm: teenuse kontrollimise skriptide konfigureerimine ja kasutamine
Kui vajate oma töötavate protsesside/teenuste üle suuremat kontrolli, on need skriptid kindlasti abiks.
Kuna kood on pisut suur, laaditakse see üles githubisse ja selle leiate järgmisest hoidlast:
github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh
Kogu paketi süda on
checkService.sh
Enne selle kasutamist peate asendama teeninduskausta täieliku tee. Selle leiate stsenaariumi algusest.
Skript saab jälgida mitmeid protsesse ja täita täiendavaid ülesandeid, nagu allpool kirjeldatud:
See läbib kõik failid alamkaustast /services, millel on laiendid.serv või.check ja kontrollib, kas on olemas aktiivne protsess nimega „rakendus”.
Kui rakenduse jaoks pole faili „.check”, siis ainult fail application.serv:
Kui protsess on aktiivne, loeb see protsessi aktiivseks
Kui protsess on passiivne, käivitab see teenuse uuesti, väljastades järgmise käsu:
systemctl taaskäivitage rakendus
kui.serv -fail on tühi!
Kui.serv -fail pole tühi ja sellel on käivitatavad õigused, proovib see seda käivitada tavalise BASH -skriptina.
See on kasulik, kui lisaks teenuse taaskäivitamisele tuleb midagi lisaks teha.
Näiteks failis spamd.serv ülaltoodud repost, kui rämpspostiteenus on surnud, tuleb spamassassini teenus selle asemel taaskäivitada, mis taaskäivitab ka rämpsposti. Ainult rämpsposti taaskäivitamisest ei piisa.
Sellise servifaili sisu saab vastavalt vajadustele muuta.
Teine näide on fail pcscd.serv. Sel juhul käivitati/surmati ka mitmeid teisi protsesse.
Kui kontrollfail on olemas, käivitab see pärast protsessi töötamise kontrollimist ka selle skriptifaili täiendavate kontrollide tegemiseks.
Näiteks oscami teenuse jaoks oleme loonud kontrollfaili, mis proovib selle veebiliidesega ühenduse luua, et näha, kas see õnnestub. Kui ei, siis hoolimata protsessi aktiveerimisest ei reageeri teenus ja see tuleb taaskäivitada. Teenuse taaskäivitamist peab tegema/kutsuma.check -fail ise.
Teine näide oleks DLNA -teenus.
See on väike server, mis pakub DLNA klientidele video-/helisisu ja edastab ennast võrgus. Mõnikord hangub teenus ja see pole enam avastatav, kuid protsess on endiselt aktiivne. Teenuse avastatavuse kontrollimiseks kasutati CLI utiliiti nimega gssdp-discover. Kogu DLNA -serverit kontrolliv kood paigutati skripti mediatomb.check sisse.
Need on vaid mõned näited selle kohta, kuidas saate kasutada.serv ja.check faile.
Uue teenuse jälgimiseks tuleb luua.serv ja vajadusel ka kontrollfail ning kirjutada nende sisse vastav skript.
Kui piisab ainult protsessi olemasolu kontrollimisest, siis piisab tühjast.serv -failist. Kui tuleb teha täiendavaid kontrolle, tuleb luua.check -fail ja töö tegemiseks kirjutada väike skript.
Muidugi tuleb skripti.sh käivitada perioodiliselt, seetõttu tuleb selle jaoks luua ka cron -töö:
#kontrolli jooksvaid teenuseid iga 5 minuti järel */5 * * * * /var/bin/ServiceCheck/checkService.sh>/dev/null
3. samm: lõplikud mõtted
Loodan, et see pakett on teile kasulik, kuna see võib lihtsasti jälgida Linuxi protsesse ja loodetavasti minimeerib teie teenuste seisakuid.
Kui loote uusi, laadige githubisse täiendavaid skripte. Lihtsalt andke mulle sellest teada ja ma lisan teid kaastöötajaks.
Soovitan:
Raspberry Pi sisekliima jälgimise ja kontrollimise süsteem: 6 sammu
Raspberry Pi sisekliima jälgimise ja kontrollimise süsteem: inimesed tahavad oma majas mugavalt tunda. Kuna meie piirkonna kliima ei pruugi meile sobida, kasutame tervisliku sisekeskkonna säilitamiseks paljusid seadmeid: kütteseadet, õhujahutit, niisutajat, õhukuivatit, puhastit jne. Tänapäeval on see
Veel üks ATTINY85 Interneti -teenuse pakkuja kilp Arduino jaoks: 8 sammu
Veel üks ATTINY85 Interneti -teenuse pakkuja kilp Arduino jaoks: veebipõhine programm ATTINY85 ISP programmeerimiskilp on loodud ATTiny85 µControllerite hõlpsaks programmeerimiseks. Kilp peab olema ühendatud Arduino Uno plaadiga. Arduino Uno on valmis toimima Sarjaprogrammeerija & quot
Arduino Nano Interneti -teenuse pakkuja dongle: 5 sammu
Arduino Nano Interneti-teenuse pakkuja dongle: kui tulete Arduino universumi Plug-n'-Play-maailmast ja soovite oma praegust projekti vähendada või võib-olla kavandada oma esimese kohandatud trükkplaadi, võib teil olla või võib peagi aru saada, et tehases värsked mikrokontrollerid puudub nn alglaadimine
Väikese Interneti -teenuse pakkuja programmeerimine: kasutades CNC PCB freesimismasinat: 13 sammu (piltidega)
Väikese Interneti -teenuse pakkuja programmeerimine: kasutades CNC -trükkplaatide freespinki: kas olete mõelnud, kuidas oma elektroonilist projekti nullist üles ehitada? Elektroonikaprojektide tegemine on meie, tegijate jaoks nii põnev ja lõbus. Kuid enamik tegijaid ja riistvarahuvilisi, kes alles astuvad tegijakultuuri poole, ehitasid oma projektid üles
Homebrew WISP (traadita Interneti -teenuse pakkuja): 4 sammu
Homebrew WISP (traadita Interneti -teenuse pakkuja): olen traadita tehnoloogiaga alati varem üllatunud. Mäletan meie keskkooli päevil. Unistasime sõpradega, kuidas levitada andmepakette VHF -raadio (145,00 Mhz) ja arvuti Commodore 64 abil. See ei olnud materiaalne