Sisällysluettelo:
- Vaihe 1: Systemdin tarjoamien menetelmien käyttö
- Vaihe 2: Service Checker -skriptien määrittäminen ja käyttäminen
- Vaihe 3: Viimeiset ajatukset
Video: Service Monitor Script Linux -palvelimille: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Vakaan, aina toimivan järjestelmän saaminen, vaikka käytät Linuxia, voi olla vaikea tehtävä.
Nykyaikaisten ohjelmistopakettien monimutkaisuuden ja huonon koodauksen vuoksi jotkin prosessit voivat väistämättä kaatua aika ajoin. Tämä voi olla huono asia, jos käytät palvelinta ja jotkut ihmiset luottavat näihin palveluihin.
Vaihe 1: Systemdin tarjoamien menetelmien käyttö
Kuten ehkä tiedät, useimmat nykyaikaiset Linux -käyttöjärjestelmät käyttävät systemd -järjestelmää.
Jos et tunne systemdia, tämä on wikipedian mukaan:
"… Init -järjestelmä, jota käytetään Linux -jakeluissa käyttäjän tilan käynnistämiseen ja kaikkien prosessien hallintaan myöhemmin UNIX System V- tai Berkeley Software Distribution (BSD) -järjestelmien sijasta.…"
Monet ihmiset väittävät edelleen, miksi vanha hyvä init -järjestelmä oli tarpeen korvata tällä monimutkaisemmalla prosessinhallintajärjestelmällä, mutta seuraavasta linkistä saatat löytää hyvän selityksen:
www.tecmint.com/systemd-replaces-init-in-l…
Tärkein parannus olisi se, että se pystyy tuomaan järjestelmän esille nopeammin kuin init, koska samanaikainen ja rinnakkainen käsittely käynnistyksen yhteydessä ei ole peräkkäinen init -lähestymistapa
Menemättä systemdin syvyyksiin, jotta voit lisätä prosessin systemdiin, sinun on luotava palvelutiedosto. Tällaisen tiedoston syntaksi voi vaihdella hyvin yksinkertaisesta erittäin monimutkaiseen, emmekä mene yksityiskohtiin. Jotta sinulla olisi.service -perustiedosto, riittää käyttää seuraavia merkintöjä:
[Yksikkö] Kuvaus = Sovelluksen kuvaus usr/sbin/application stopRestart = aina [Asenna] WantedBy = multi-user.target
Aseta ne application.service -tiedostoon/lib/systemd/system -kansioon.
Mitä kukin näistä vaihtoehdoista tekee, selitetään seuraavassa linkissä:
access.redhat.com/documentation/en-US/Red_…
Jos haluat käynnistää sovelluksesi, anna seuraava komento:
sudo systemctl käynnistä sovellus. palvelu
Huomautus:.service -laajennus voidaan jättää pois.
Sovelluksen pysäyttäminen:
sudo systemctl pysäytä sovellus. palvelu
Jos asetustiedostoa on muutettu ja haluat ladata asetukset uudelleen:
sudo systemctl lataa sovellus. palvelu
Sovelluksen käynnistäminen uudelleen:
sudo systemctl käynnistä sovellus uudelleen. palvelu
Automaattisen käynnistyksen ottaminen käyttöön käynnistyksen yhteydessä:
sudo systemctl ota käyttöön application.service
Jos tämä on käytössä, systemd -prosessinhallinta yrittää käynnistää sovelluksen järjestelmätiedoston antamien asetusten perusteella.
Voit poistaa sen käytöstä käyttämällä samaa komentoa kuin yllä, mutta parametrilla 'disable'.
Jos sijoitat Restart = aina huoltotiedostoon, systemd seuraa prosessia ja jos sitä ei löydy prosessiluettelosta, se yrittää käynnistää sen uudelleen automaattisesti.
Jos sijoitat
RestartSec = 30
uudelleenkäynnistysdirektiivin jälkeen se odottaa 30 sekuntia ennen kuin yrittää käynnistää prosessin uudelleen. Tästä voi olla hyötyä, koska epäonnistuneen palvelun/sovelluksen jatkuva uudelleenkäynnistysyritys voi johtaa järjestelmän suureen kysyntään (virhelokien kirjoittaminen jne.)
Kuten näette, systemd tarjoaa jo joitakin keinoja prosessien seurantaan. Joissakin tapauksissa tämä ei kuitenkaan riitä. Entä jos prosessi ei sulkeudu (se on edelleen prosessiluettelossa), mutta se lakkaa vastaamasta. Tässä tapauksessa saatat tarvita lisätarkastuksia, jotta voit varmistaa, että prosessi on todella käynnissä.
Tässä on ohjeet tämän oppaan käsikirjoituksista.
Vaihe 2: Service Checker -skriptien määrittäminen ja käyttäminen
Jos tarvitset enemmän hallintaa käynnissä olevista prosesseista/palveluista, nämä skriptit ovat varmasti hyödyllisiä.
Koska koodi on hieman suuri, se on ladattu githubiin ja löytyy seuraavasta arkistosta:
github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh
Koko paketin sydän on
checkService.sh
Ennen kuin käytät sitä, sinun on vaihdettava palvelukansion koko polku. Tämä löytyy käsikirjoituksen alusta.
Skripti voi seurata useita prosesseja ja suorittaa lisätehtäviä alla kuvatulla tavalla:
Se käy läpi kaikki tiedostot /services -alikansiosta, jolla on.serv- tai.check -laajennukset, ja tarkistaa, onko olemassa aktiivista prosessia nimeltä "application".
Jos sovelluksessa ei ole.check -tiedostoa, vain application.serv -tiedosto:
Jos prosessi on aktiivinen, se pitää prosessia aktiivisena
Jos prosessi ei ole aktiivinen, se käynnistää palvelun uudelleen antamalla seuraavan komennon:
systemctl käynnistä sovellus uudelleen
jos.serv -tiedosto on tyhjä!
Jos.serv -tiedosto ei ole tyhjä ja sillä on suoritettavat oikeudet, se yrittää ajaa sitä tavallisena BASH -skriptinä.
Tästä on hyötyä, jos palvelun uudelleenkäynnistyksen lisäksi on tehtävä jotain lisäksi.
Esimerkiksi spamd.serv -tiedostossa, yllä olevasta reposta, jos roskapostipalvelu on kuollut, spamassassin -palvelu on käynnistettävä uudelleen, mikä myös käynnistää roskapostin uudelleen. Pelkkä roskapostin uudelleenkäynnistys ei riitä.
Tällaisen serv -tiedoston sisältöä voidaan muokata tarpeiden mukaan.
Toinen esimerkki on pcscd.serv -tiedosto. Tässä tapauksessa myös useita muita prosesseja käynnistettiin uudelleen/lopetettiin.
Jos tarkistustiedosto on olemassa, se tarkistaa sen jälkeen, onko prosessi käynnissä, mutta myös suorittaa tämän komentotiedoston lisätarkistusten suorittamiseksi.
Esimerkiksi oscam -palvelua varten olemme luoneet tarkistustiedoston, joka yrittää muodostaa yhteyden sen verkkokäyttöliittymään nähdäkseen, onnistuiko se. Jos ei, palvelu ei vastaa, vaikka prosessi on aktiivinen, ja se on käynnistettävä uudelleen. Palvelun uudelleenkäynnistyksen täytyy suorittaa/kutsua itse.check -tiedosto.
Toinen esimerkki olisi mediatomb DLNA -palvelu.
Tämä on pieni palvelin, joka tarjoaa video-/äänisisältöä DLNA -asiakkaille ja lähettää itseään verkossa. Joskus palvelu jumittuu eikä sitä voi enää löytää, mutta prosessi on edelleen aktiivinen. Tarkistaaksesi, onko palvelu löydettävissä, käytettiin CLI-apuohjelmaa gssdp-discover. Koko DLNA -palvelinta tarkistava koodi sijoitettiin mediatomb.check -skriptiin.
Nämä ovat vain muutamia esimerkkejä siitä, kuinka voit käyttää.serv- ja.check -tiedostoja.
Jotta voit valvoa uutta palvelua, sinun on luotava.serv ja tarvittaessa myös tarkistustiedosto ja kirjoitettava vastaava komentosarja niiden sisälle.
Jos vain prosessin läsnäolon tarkistaminen riittää, tyhjä.serv -tiedosto riittää. Jos lisätarkastuksia on suoritettava, on luotava.check -tiedosto ja tehtävä pieni komentosarja.
Tietenkin.sh -komentosarja on suoritettava säännöllisesti, joten sille on myös luotava cron -työ:
#Tarkista käynnissä olevat palvelut 5 minuutin välein */5 * * * * /var/bin/ServiceCheck/checkService.sh>/dev/null
Vaihe 3: Viimeiset ajatukset
Toivon, että tämä paketti on hyödyllinen, koska se voi suuresti yksinkertaisesti valvoa Linux -prosesseja ja toivottavasti minimoi palveluiden seisokit.
Voit vapaasti ladata lisäskriptejä githubiin, jos luot uusia. Kerro vain minulle, niin lisään sinut avustajaksi.
Suositeltava:
Linux XE303C12 Chromebookilla: 7 vaihetta
Linux XE303C12 Chromebookilla: Hei tässä opetusohjelmassa näytän kuinka käynnistää Kali Linux SD -kortilta Samsung Chromebook 1: ssä. lähetä minulle sähköpostia, niin yritän auttaa
USB Rubber Ducky Script Encoder (VBScript): 5 vaihetta
USB Rubber Ducky Script Encoder (VBScript): Jos sinulla on USB Rubber Ducky, tiedät, että erittäin ärsyttävä tehtävä on kääntää komentosarjasi a.bin -tiedostoksi. Jos joudut tekemään minkäänlaista virheenkorjausta, tiedät, että kokoamasi komentosarjan jatkuva lataaminen voi olla tuskaa. Joten korjata tämä
2d -merkin luominen merkkiohjaimella Unreal Engine 4: ssä Visual Script for PC: n avulla: 11 vaihetta
2d -merkin luominen merkkiohjaimella Unreal Engine 4: ssä Visual Script for PC: n avulla: Kuinka luoda 2d -merkki merkkiohjaimella Unreal engine 4: ssä käyttämällä PC: n visuaalista skriptiä Hei, olen Jordan Steltz. Olen kehittänyt videopelejä 15 -vuotiaasta lähtien. Tämä opetusohjelma opettaa sinulle, miten voit luoda perushahmon
Irrigações Automatizadas Com Web Service Utilizando Python: 5 vaihetta (kuvilla)
Irrigações Automatizadas Com Web Service Utilizando Python: Neste projeto iremos desenvolver um system de monitoramento para planta ç õ es, que ir á obter dados de umidade relativa do ar, press ã o atmosf é rica, temperatura do ar, incid ê ncia UV, velocidade do vento e condi &
Arvioi Instructables -kommentit - Greasemonkey Script: 5 Steps
Arvioi kommentteja Instructablesista - Greasemonkey Script: Joskus joku lähettää erityisen hyödyllisen kommentin, jonka haluat hyväksyä. Muina aikoina ihmiset lähettävät melko idioottimaisia, joita et haluaisi olla siellä. Kuten digg, tämä Greasemonkey -skripti antaa sinun arvioida kommentteja. Tällä hetkellä käyttäjäkunta