Sadržaj:
- Korak 1: Korištenje metoda koje nudi Systemd
- Korak 2: Konfiguriranje i korištenje skripti servisne provjere
- Korak 3: Završne misli
Video: Skripta servisnog monitora za Linux poslužitelje: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:09
Imati stabilan sistem koji uvijek radi, čak i ako koristite Linux, može biti težak zadatak.
Zbog složenosti modernih softverskih paketa i lošeg kodiranja, neki se procesi mogu srušiti s vremena na vrijeme. Ovo bi moglo biti loše ako koristite poslužitelj, a neki se ljudi oslanjaju na te usluge.
Korak 1: Korištenje metoda koje nudi Systemd
Kao što možda već znate, većina modernih Linux operativnih sistema koristi systemd.
Ako niste upoznati sa systemd, ovo je, prema wikipediji:
"… init sistem koji se koristi u Linux distribucijama za bootstrap korisnički prostor i naknadno upravljanje svim procesima, umjesto UNIT System V ili Berkeley Software Distribution (BSD) init sistema."
Mnogi ljudi još uvijek raspravljaju zašto je bilo potrebno zamijeniti stari dobri init sistem sa ovim kompliciranijim sistemom upravljanja procesima, ali na sljedećoj se vezi moglo pronaći dobro objašnjenje:
www.tecmint.com/systemd-replaces-init-in-l…
Najvažnije poboljšanje bilo bi to što može pokrenuti sistem brže od init -a, zbog istovremene i paralelne obrade pri pokretanju umjesto sekvencijalnog pristupa init -a
Bez ulaženja u dubine systemd -a, da biste dodali proces u systemd, morate kreirati servisnu datoteku. Sintaksa takve datoteke može biti u rasponu od vrlo jednostavnih do krajnje kompliciranih i nećemo ulaziti u detalje. Da biste imali osnovnu.service datoteku, dovoljno je koristiti sljedeće unose:
[Jedinica] Opis = Opis aplikacijeDocumentation = https://wikipedia.org/ After = local-fs.target network.target [Service] Vrsta = simpleExecStart =/usr/sbin/applicationExecReload =/usr/sbin/aplikacija za ponovno učitavanjeExecStop =/ usr/sbin/application stopRestart = uvijek [Instaliraj] TraženoBy = višekorisnički cilj
Postavite ih u datoteku application.service u/lib/systemd/system folder.
Šta svaka od ovih opcija radi objašnjeno je na sljedećoj poveznici:
access.redhat.com/documentation/en-US/Red_…
Da biste pokrenuli aplikaciju, izdajte sljedeću naredbu:
sudo systemctl pokrenite application.service
Napomena:.service ekstenzija se može izostaviti.
Da biste zaustavili aplikaciju:
sudo systemctl stop application.service
Ako je konfiguracijska datoteka promijenjena i želite ponovo učitati postavke:
sudo systemctl ponovno učitavanje application.service
Da biste ponovo pokrenuli aplikaciju:
sudo systemctl ponovo pokrenite application.service
Da biste omogućili automatsko pokretanje pri pokretanju:
sudo systemctl omogućuje application.service
Ako je ovo omogućeno, tada će sistemski upravitelj procesa pokušati pokrenuti aplikaciju na osnovu postavki koje je dala sistemska datoteka.
Da biste ga onemogućili, koristite istu naredbu kao gore, ali s parametrom 'disable'.
Ako postavite Restart = uvijek u servisnu datoteku, tada će systemd nadzirati proces, a ako se ne može pronaći na popisu procesa, pokušat će ga automatski ponovo pokrenuti.
Ako postavite
RestartSec = 30
nakon direktive restart, čekat će 30 sekundi prije nego što pokuša ponovo pokrenuti proces. Ovo bi moglo biti korisno jer pokušaj kontinuiranog ponovnog pokretanja neuspjele usluge/aplikacije može dovesti do velike potražnje za sistemom (pisanje dnevnika grešaka itd.)
Kao što vidite, systemd već pruža neka sredstva za praćenje procesa. Međutim, u nekim slučajevima to može biti nedovoljno. Što ako proces ne izađe (i dalje će biti na popisu procesa), ali prestane reagirati. U ovom slučaju, kako biste bili sigurni da je proces zaista pokrenut, možda će vam trebati dodatne provjere.
Ovdje će vam skripte iz ovog uputstva dobro doći.
Korak 2: Konfiguriranje i korištenje skripti servisne provjere
Ako vam je potrebna veća kontrola nad vašim tekućim procesima/uslugama, ove skripte će vam sigurno biti od pomoći.
Kako je kod malo velik, postavljen je na github i može se pronaći pod sljedećim spremištem:
github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh
Srce cijelog paketa je
checkService.sh
Prije korištenja morate zamijeniti punu putanju do direktorija usluge. To se može pronaći na početku skripte.
Skripta može nadzirati nekoliko procesa i izvesti dodatni zadatak, kako je dolje opisano:
Prolazi kroz sve datoteke iz podmape /services sa ekstenzijama.serv ili.check i provjerit će postoji li aktivan proces pod nazivom "aplikacija".
Ako za aplikaciju ne postoji datoteka '.check', samo datoteka application.serv:
Ako je proces aktivan, smatrat će ga aktivnim
Ako je proces neaktivan, tada će ponovo pokrenuti uslugu izdavanjem sljedeće naredbe:
systemctl aplikacija za ponovno pokretanje
ako je.serv datoteka prazna!
Ako.serv datoteka nije prazna i ima izvršna prava, pokušat će je pokrenuti kao običnu BASH skriptu.
Ovo je korisno ako morate učiniti još nešto osim ponovnog pokretanja usluge.
Na primjer, u datoteci spamd.serv, iz gore navedenog repo -a, u slučaju da je usluga spamd mrtva, uslugu spamassassin je potrebno ponovno pokrenuti, što će također ponovno pokrenuti spamd. Ponovno pokretanje samo spamda ne bi bilo dovoljno.
Sadržaj takve serv datoteke može se urediti prema potrebama.
Drugi primjer je pcscd.serv datoteka. U ovom slučaju nekoliko drugih procesa je također ponovno pokrenuto/ubijeno.
Ako postoji datoteka za provjeru, nakon provjere da li je proces pokrenut, također će pokrenuti ovu datoteku skripte za dodatne provjere.
Na primjer, za uslugu oscam, stvorili smo datoteku za provjeru koja se pokušava povezati s web sučeljem kako bi provjerila je li uspješna. Ako nije, tada, unatoč aktivnom procesu, usluga ne reagira i potrebno ju je ponovno pokrenuti. Ponovno pokretanje usluge mora izvršiti/pozvati sama.check datoteka.
Drugi primjer bi bio DLNA servis mediatomb.
Ovo je mali poslužitelj koji pruža video/audio sadržaj DLNA klijentima i emitira se na mreži. Ponekad usluga visi i više je nije moguće otkriti, ali proces će i dalje biti aktivan. Za provjeru je li usluga dostupna za otkrivanje, korišten je CLI uslužni program pod nazivom gssdp-discovery. Čitav kôd koji provjerava DLNA server smješten je unutar skripte mediatomb.check.
Ovo je samo nekoliko primjera kako možete koristiti.serv i.check datoteke.
Da biste nadzirali novu uslugu, morate stvoriti.serv, a po potrebi i datoteku za provjeru i unutar njih napisati odgovarajuću skriptu.
Ako samo provjerite prisutnost procesa ako je dovoljno, tada će biti dovoljna prazna.serv datoteka. Ako se moraju izvršiti dodatne provjere, tada se mora stvoriti.check datoteka i napisati mala skripta za obavljanje posla.
Naravno,.sh skripta se mora povremeno pokretati, stoga se za nju mora stvoriti i cron posao:
#check provjerite pokrenute usluge svakih 5 minuta */5 * * * * /var/bin/ServiceCheck/checkService.sh>/dev/null
Korak 3: Završne misli
Nadam se da će vam ovaj paket biti od koristi jer može uvelike jednostavno nadzirati Linux procese i nadam se da će minimizirati zastoje vaših usluga.
Slobodno prenesite dodatne skripte na github, ako kreirate nove. Samo me obavijestite i ja ću vas dodati kao saradnika.
Preporučuje se:
Postavljanje Raspberry Pi 4 preko prijenosnog računara/računara pomoću Ethernet kabela (bez monitora, bez Wi-Fi-ja): 8 koraka
Postavljanje Raspberry Pi 4 preko prijenosnog računara/računara pomoću Ethernet kabela (bez monitora, bez Wi-Fi-ja): U ovom radu radićemo sa Raspberry Pi 4 Model-B od 1 GB RAM-a za postavljanje. Raspberry-Pi je jednokrilni računar koji se koristi u obrazovne svrhe i uradi sam projekti po pristupačnoj cijeni, zahtijeva napajanje od 5V 3A
Dodavanje monitora upotrebe kućnom termostatu: 4 koraka
Dodajte monitor korištenja kućnom termostatu: Davno, davno, prije nego što je postojalo nešto poput "pametnog" termostat, imao sam kućni termostat koji je dnevno (mislim - možda sedmično) davao ukupno "na vrijeme" za moj sistem grijanja i klimatizacije. Stvari su se promijenile … Las
Pretvaranje VGA monitora u razdjelnik monitora u računarski kontrolirani prekidač monitora: 4 koraka
Pretvaranje VGA monitora u razdjelnik monitora u prekidač monitora kontroliran računalom: Ovo uputstvo objašnjava kako se jeftini (20 eura) VGA razdjelnik monitora koji se koristi za povezivanje jednog računara na dva monitora može pretvoriti u prekidač za nadzor računara. Konačni uređaj se kontrolira putem paralelnog priključka i omogućuje okretanje
Ocijenite komentare na Instructables - Greasemonkey Skripta: 5 koraka
Ocijenite komentare na Instructables - Greasemonkey Script: Ponekad neko objavi posebno koristan komentar koji biste htjeli prihvatiti. Drugi put ljudi objavljuju prilično idiotske one za koje biste voljeli da ih nema. Kao i digg, ova skripta Greasemonkey omogućuje vam ocjenjivanje komentara. Korisnička baza od sada
Skripta za sigurnosnu kopiju Konfiguracije bežične pristupne tačke Linksys: 5 koraka
Skripta za sigurnosnu kopiju Linksys konfiguracije bežične pristupne tačke: Ova instrukcija će pokazati skriptu koja se može koristiti za automatizaciju izrade sigurnosnih kopija konfiguracija bežične pristupne tačke linksys. Zapravo, ovo se lako može urediti za sigurnosnu kopiju gotovo svakog linksys uređaja