Indholdsfortegnelse:
- Trin 1: Brug af metoder leveret af Systemd
- Trin 2: Konfiguration og brug af Service Checker Scripts
- Trin 3: Endelige tanker
Video: Service Monitor Script til Linux -servere: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:30
At have et stabilt, altid kørende system, selvom du bruger Linux, kan være en vanskelig opgave.
På grund af kompleksiteten i moderne softwarepakker og dårlig kodning kan nogle processer uundgåeligt gå ned fra tid til anden. Dette kan være en dårlig ting, hvis du kører en server, og nogle mennesker er afhængige af disse tjenester.
Trin 1: Brug af metoder leveret af Systemd
Som du måske allerede ved, bruger de fleste moderne Linux -operativsystemer systemd.
Hvis du ikke er bekendt med systemd, er dette ifølge wikipedia:
"… et init -system, der bruges i Linux -distributioner til at bootstrap brugerrummet og administrere alle processer efterfølgende, i stedet for UNIX System V eller Berkeley Software Distribution (BSD) init -systemer. …"
Mange mennesker argumenterer stadig over, hvorfor det var nødvendigt at udskifte det gode gamle init -system med dette mere komplicerede processtyringssystem, men på det følgende link finder man måske en god forklaring:
www.tecmint.com/systemd-replaces-init-in-l…
Den vigtigste forbedring ville være, at det er i stand til at hente systemet hurtigere end init på grund af samtidig og parallel behandling ved opstart i stedet for den sekventielle tilgang til init
Uden at gå ind i systemdypet skal du oprette en servicefil for at tilføje en proces til systemd. Syntaksen for en sådan fil kan variere fra meget enkel til fuldstændig kompliceret, og vi vil ikke gå i detaljer. For at have en grundlæggende.service -fil er det tilstrækkeligt at bruge følgende poster:
[Enhed] Beskrivelse = Beskrivelse af applicationDocumentation = https://wikipedia.org/ After = local-fs.target network.target [Service] Type = simpleExecStart =/usr/sbin/applicationExecReload =/usr/sbin/application reloadExecStop =/ usr/sbin/application stopRestart = altid [Installer] WantedBy = multi-user.target
Placer disse i application.service -filen i/lib/systemd/systemmappen.
Hvad hver af disse muligheder gør, forklares i følgende link:
access.redhat.com/documentation/en-US/Red_…
For at starte din applikation, skal du udstede følgende kommando:
sudo systemctl start application.service
Bemærk:.service -udvidelsen kan udelades.
Sådan stopper du applikationen:
sudo systemctl stop application.service
Hvis konfigurationsfilen er blevet ændret, og du gerne vil genindlæse indstillingerne:
sudo systemctl genindlæs application.service
For at genstarte applikationen:
sudo systemctl genstart application.service
Sådan aktiveres automatisk start ved opstart:
sudo systemctl aktivere application.service
Hvis dette er aktiveret, vil systemd procesmanager prøve at starte programmet på basis af de indstillinger, der blev leveret af systemfilen.
For at deaktivere det skal du bruge den samme kommando som ovenfor, men med parameteren 'deaktiver'.
Hvis du placerer Genstart = altid i servicefilen, vil systemd overvåge processen, og hvis den ikke kan findes på proceslisten, vil den prøve at genstarte den automatisk.
Hvis du placerer
RestartSec = 30
efter genstartdirektivet vil det vente i 30 sekunder, før du prøver at genstarte processen. Dette kan være nyttigt, da et kontinuerligt genstartforsøg af en fejlende service/applikation kan føre til stor efterspørgsel på systemet (skrivefejllogs osv.)
Som du kan se, giver systemd allerede nogle midler til at overvåge processerne. I nogle tilfælde er dette imidlertid ikke tilstrækkeligt. Hvad hvis en proces ikke afslutter (den vil stadig være på proceslisten), men den holder op med at reagere. I dette tilfælde skal du muligvis udføre yderligere kontroller for at sikre, at en proces faktisk er i gang.
Det er her, scripts fra denne instruktive vil komme til nytte.
Trin 2: Konfiguration og brug af Service Checker Scripts
Hvis du har brug for mere kontrol over dine kørende processer/tjenester, vil disse scripts helt sikkert være nyttige.
Da koden er lidt stor, uploades den til github og kan findes under følgende lager:
github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh
'Hjertet' i hele pakken er
checkService.sh
Inden du bruger den, skal du udskifte hele stien til servicemappen. Dette kan findes i begyndelsen af scriptet.
Scriptet kan overvåge flere processer og udføre yderligere opgave, som beskrevet nedenfor:
Det går gennem hver fil fra undermappen /services med.serv eller.check udvidelser og kontrollerer, om der er en aktiv proces kaldet 'applikation'.
Hvis der ikke er en '.check' -fil til et program, er det kun application.serv -filen:
Hvis processen er aktiv, vil den betragte processen som værende aktiv
Hvis processen er inaktiv, genstarter den tjenesten ved at udstede følgende kommando:
systemctl genstart applikation
hvis.serv -filen er tom!
Hvis.serv -filen ikke er tom og har eksekverbare rettigheder, vil den prøve at køre den som et almindeligt BASH -script.
Dette er nyttigt, hvis der også skal gøres noget udover bare at genstarte tjenesten.
For eksempel i spamd.serv -filen, fra repoen ovenfor, hvis spamd -tjenesten er død, skal spamassassin -tjenesten genstartes i stedet, hvilket også genstarter spamd. Genstart af bare spamd ville ikke være tilstrækkeligt.
Man kan redigere indholdet i en sådan serv -fil i henhold til behovene.
Et andet eksempel er pcscd.serv -filen. I dette tilfælde blev flere andre processer også genstartet/dræbt.
Hvis der er en tjekfil, efter at have kontrolleret, om processen kører, vil den også køre denne scriptfil for at udføre yderligere kontroller.
For eksempel for oscam -tjenesten har vi oprettet en tjekfil, der forsøger at oprette forbindelse til dens webgrænseflade for at se, om den lykkes. Hvis ikke, så på trods af at processen er aktiv, reagerer tjenesten ikke og skal genstartes. Genstart af tjenesten skal udføres/kaldes af selve.check -filen.
Et andet eksempel ville være mediatomb DLNA -tjenesten.
Dette er en lille server, der leverer video/lydindhold til DLNA -klienter og sender sig selv på netværket. Nogle gange hænger tjenesten, og den kan ikke længere opdages, men processen vil stadig være aktiv. For at kontrollere, om tjenesten er opdagelig, blev CLI-værktøjet kaldet gssdp-discover brugt. Hele koden, der kontrollerer DLNA -serveren, blev placeret i et mediatomb.check script.
Dette er blot nogle få eksempler på, hvordan du kan bruge.serv- og.check -filerne.
For at overvåge en ny tjeneste skal du oprette en.serv og om nødvendigt også en tjekfil og skrive det tilhørende script inde i dem.
Hvis det kun er tilstrækkelig kontrol af tilstedeværelsen af processen, er en tom.serv -fil tilstrækkelig. Hvis der skal udføres yderligere kontroller, skal der oprettes en.check -fil, og der skal skrives et lille script for at udføre jobbet.
Selvfølgelig skal.sh -scriptet køres med jævne mellemrum, derfor skal der også oprettes et cron -job til det:
#check kører tjenester hvert 5. minut */5 * * * * /var/bin/ServiceCheck/checkService.sh>/dev/null
Trin 3: Endelige tanker
Jeg håber, at du vil finde denne pakke nyttig, da den i høj grad kan overvåge Linux -processer og forhåbentlig vil minimere nedetiden for dine tjenester.
Upload gerne flere scripts til github, hvis du opretter nye. Bare lad mig vide, så tilføjer jeg dig som bidragyder.
Anbefalede:
Kode et CustomCmd -script til Windows -kommandoprompt: 6 trin
Kode et CustomCmd -script til Windows -kommandoprompt: Bruger du CMD meget? Jeg gør! Men masser af mennesker - inklusive mig - synes, det er alt for kedeligt. I dag vil jeg kode et script, der giver os mulighed for at tilpasse CMD lige nok til at holde det sjovt. Lad os komme i gang! KODE DOWNLOAD NEDERST I ARTICLEYOU WIL
Sådan opretter du en 2d -karakter med tegncontroller i Unreal Engine 4 Brug af Visual Script til pc: 11 trin
Sådan opretter du en 2d -karakter med tegncontroller i Unreal Engine 4 Brug af Visual Script til PC: Sådan opretter du en 2d -karakter med tegncontroller i Unreal -motor 4 ved hjælp af visuelt script til PC Hej, jeg er Jordan Steltz. Jeg har udviklet videospil siden jeg var 15. Denne vejledning lærer dig, hvordan du opretter en grundlæggende karakter med i
Ring til MATLAB Script og funktion fra Python: 5 trin
Ring til MATLAB Script og funktion fra Python: Hej venner. I denne instruktive vil jeg vise dig, hvordan du kører MATLAB -scripts og kalder MATLAB -funktioner fra python -kode
Vurder kommentarer til Instructables - Greasemonkey Script: 5 trin
Vurder kommentarer til Instructables - Greasemonkey Script: Nogle gange sender nogen en særlig nyttig kommentar, som du gerne vil anerkende. Andre gange sender folk temmelig idiotiske dem, som du ønsker ikke var der. Ligesom digg giver dette Greasemonkey -script dig mulighed for at bedømme kommentarer. Fra nu af er brugerbasen
Opsætning til programmering af en Picaxe Via Shell Script (linux): 5 trin
Opsætning til programmering af en Picaxe Via Shell Script (linux): Enkel gennemgang, der viser, hvordan man laver et shell -script, der vil downloade et program fra et ftp -websted, derefter kompilere det og derefter downloade det til picaxe. (Dette er også mit første instruerbar)