Sadržaj:
- Korak 1: Korištenje metoda koje nudi Systemd
- Korak 2: Konfiguriranje i korištenje skripti provjere usluge
- Korak 3: Završne misli
Video: Skripta servisnog monitora za poslužitelje Linux: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Imati stabilan sustav koji uvijek radi, čak i ako koristite Linux, može biti težak zadatak.
Zbog složenosti suvremenih programskih paketa i lošeg kodiranja, neki se procesi mogu s vremena na vrijeme neizbježno srušiti. To 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 operacijskih sustava koristi systemd.
Ako niste upoznati sa systemd, ovo je, prema wikipediji:
"… init sustav koji se koristi u distribucijama Linuxa za bootstrap korisničkog prostora i naknadno upravljanje svim procesima, umjesto init sustava UNIX System V ili Berkeley Software Distribution (BSD) …"
Mnogi se ljudi još uvijek raspravljaju zašto je bilo potrebno zamijeniti stari dobri init sustav ovim kompliciranijim sustavom 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 sustav brže od init -a, zbog istovremene i paralelne obrade pri pokretanju umjesto sekvencijalnog pristupa init -a
Ne ulazeći u dubine systemd, da biste dodali proces u systemd, morate stvoriti 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 reloadExecStop =/ usr/sbin/application stopRestart = uvijek [Instaliraj] TraženoBy = višekorisnički cilj
Postavite ih u datoteku application.service u/lib/systemd/system mapu.
Što 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 start application.service
Napomena: proširenje.service može se izostaviti.
Da biste zaustavili aplikaciju:
sudo systemctl stop application.service
Ako je konfiguracijska datoteka promijenjena i želite ponovno učitati postavke:
sudo systemctl aplikacija za ponovno učitavanje.usluga
Za ponovno pokretanje aplikacije:
sudo systemctl restart application.service
Da biste omogućili automatsko pokretanje pri pokretanju:
sudo systemctl omogućiti aplikaciju.service
Ako je to omogućeno, tada će sistemski upravitelj procesa pokušati pokrenuti aplikaciju na temelju postavki koje je dala sistemska datoteka.
Da biste ga onemogućili, upotrijebite istu naredbu kao gore, ali s parametrom 'disable'.
Ako Restart = uvijek postavite u datoteku usluge, tada će systemd nadzirati proces, a ako se ne može pronaći na popisu procesa, pokušat će ga automatski ponovno pokrenuti.
Ako postavite
RestartSec = 30
nakon direktive restart, pričekat će 30 sekundi prije nego što pokuša ponovno pokrenuti proces. To bi moglo biti korisno jer pokušaj kontinuiranog ponovnog pokretanja neuspjele usluge/aplikacije može dovesti do velike potražnje za sustavom (pisanje zapisnika grešaka itd.)
Kao što vidite, systemd već pruža neka sredstva za praćenje procesa. Međutim, u nekim slučajevima to možda neće biti dovoljno. Što ako proces ne izađe (i dalje će biti na popisu procesa), ali prestane reagirati. U tom slučaju, kako biste bili sigurni da je proces doista 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 provjere usluge
Ako vam je potrebna veća kontrola nad vašim tekućim procesima/uslugama, ove će vam skripte zasigurno biti od pomoći.
Kako je kôd malo velik, postavljen je na github i može se pronaći u sljedećem spremištu:
github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh
"Srce" cijelog paketa je
checkService.sh
Prije korištenja morate zamijeniti puni put do mape 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 s ekstenzijama.serv ili.check te će provjeriti postoji li aktivan proces pod nazivom "aplikacija".
Ako za aplikaciju nema datoteke '.check', samo datoteka application.serv:
Ako je proces aktivan, smatrat će ga aktivnim
Ako je proces neaktivan, ponovno će pokrenuti uslugu izdavanjem sljedeće naredbe:
program za ponovno pokretanje systemctl
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.
To je korisno ako morate učiniti još nešto osim ponovnog pokretanja usluge.
Na primjer, u datoteci spamd.serv, iz gore navedenog repoa, u slučaju da je usluga spamd mrtva, uslugu spamassassin je potrebno ponovno pokrenuti, što će također ponovno pokrenuti spamd. Ponovno pokretanje samo neželjene pošte ne bi bilo dovoljno.
Sadržaj takve serv datoteke može se uređivati 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 je li 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 bila bi DLNA usluga 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. Cijeli kod koji provjerava DLNA poslužitelj 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 te 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:
#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.
Ako stvarate nove, slobodno prenesite dodatne skripte na github. Samo me obavijestite i ja ću vas dodati kao suradnika.
Preporučeni:
Postavljanje Raspberry Pi 4 preko prijenosnog računala/računala pomoću Ethernet kabela (bez monitora, bez Wi-Fi-ja): 8 koraka
Postavljanje Raspberry Pi 4 putem prijenosnog računala/računala pomoću Ethernet kabela (bez monitora, bez Wi-Fi-ja): U ovom ćemo radu raditi s Raspberry Pi 4 Model-B od 1 GB RAM-a za postavljanje. Raspberry-Pi je jednokrilno računalo koje se koristi u obrazovne svrhe i DIY projekte po pristupačnoj cijeni, zahtijeva napajanje od 5V 3A. Operacijski sustavi poput
Dodavanje monitora upotrebe kućnom termostatu: 4 koraka
Dodajte nadzor korištenja kućnom termostatu: Davno, davno, prije nego što je postojalo nešto poput "pametnog" termostat, imao sam kućni termostat koji je davao dnevno (mislim - možda tjedno) ukupno " na vrijeme " za moj sustav grijanja i klimatizacije. Stvari su se promijenile … Las
Prozirna bočna ploča DIY od recikliranog monitora!: 8 koraka (sa slikama)
DIY prozirna bočna ploča s recikliranog monitora !: Vidio sam zaista kul video kućišta za računalo pod nazivom "Snowblind", koji je imao prozirni LCD zaslon kao bočnu ploču. Bio sam zapanjen kako je to super. Jedini je problem bio što je to stvarno bilo skupo. Stoga sam pokušao napraviti svoj! U ovom ja
Pretvaranje razdjelnika VGA monitora u računalno upravljani prekidač monitora: 4 koraka
Pretvaranje VGA monitora u razdjelnik monitora u računalno upravljani prekidač monitora: Ova uputa objašnjava kako se jeftini (20 eura) VGA razdjelnik monitora koji se koristi za spajanje jednog računala na dva monitora može pretvoriti u prekidač za nadzor računala. Konačnim uređajem upravlja se paralelnim priključkom i omogućuje okretanje
Skripta za sigurnosnu kopiju Konfiguracije bežične pristupne točke Linksys: 5 koraka
Skripta za sigurnosnu kopiju Linksys konfiguracije bežične pristupne točke: Ova uputa prikazat će skriptu koja se može koristiti za automatiziranje sigurnosne kopije konfiguracija bežične pristupne točke linksys. Zapravo, ovo se lako može urediti za sigurnosnu kopiju gotovo svih linksys uređaja