Talaan ng mga Nilalaman:
- Hakbang 1: Paggamit ng Mga Paraan na Ibinigay ng Systemd
- Hakbang 2: Pag-configure at Paggamit ng Mga Script ng Checker ng Serbisyo
- Hakbang 3: Pangwakas na Mga Saloobin
Video: Script ng Serbisyo ng Serbisyo para sa Mga Servers ng Linux: 4 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:15
Ang pagkakaroon ng isang matatag, palaging tumatakbo na system, kahit na gumagamit ka ng Linux ay maaaring maging isang mahirap na gawain.
Dahil sa pagiging kumplikado ng mga modernong mga pakete ng software at hindi magandang pag-coding, hindi maiwasang ang ilang mga proseso ay maaaring mag-crash paminsan-minsan. Maaari itong maging isang masamang bagay kung nagpapatakbo ka ng isang server at ang ilang mga tao ay umaasa sa mga serbisyong ito.
Hakbang 1: Paggamit ng Mga Paraan na Ibinigay ng Systemd
Tulad ng alam mo na, ang karamihan sa mga modernong operating system ng Linux ay gumagamit ng systemd.
Kung hindi ka pamilyar sa systemd, ito ay, ayon sa wikipedia:
"… Isang init system na ginagamit sa mga pamamahagi ng Linux upang i-bootstrap ang puwang ng gumagamit at pamahalaan ang lahat ng mga proseso pagkatapos, sa halip na ang UNIX System V o Berkeley Software Distribution (BSD) init system.…"
Maraming tao ang nagtatalo pa rin kung bakit kinakailangan na palitan ang magandang lumang init system ng mas kumplikadong sistema ng pamamahala ng proseso, ngunit sa sumusunod na link maaari kang makahanap ng magandang paliwanag:
www.tecmint.com/systemd-replaces-init-in-l…
Ang pinakamahalagang pagpapabuti ay ang kakayahang ilabas ang system nang mas mabilis kaysa sa init, dahil sa kasabay at parallel na pagproseso sa boot sa halip na ang sunud-sunod na diskarte ng init
Nang walang pagpunta sa kailaliman ng systemd, upang magdagdag ng isang proseso sa systemd, dapat kang lumikha ng isang file ng serbisyo. Ang syntax ng naturang isang file ay maaaring saklaw mula sa napakasimpla hanggang sa ganap na kumplikado, at hindi namin bibigyan ang mga detalye. Upang magkaroon ng pangunahing.service file, sapat na upang magamit ang mga sumusunod na entry:
[Yunit] Paglalarawan = Paglalarawan ng applicationDocumentation = https://wikipedia.org/ After = local-fs.target network.target [Serbisyo] Uri = simpleExecStart = / usr / sbin / applicationExecReload = / usr / sbin / application reloadExecStop = / usr / sbin / application stopRestart = laging [I-install] WantedBy = multi-user.target
Ilagay ang mga ito sa application.service file sa / lib / systemd / system folder.
Ang ginagawa ng bawat isa sa mga pagpipiliang ito ay ipinaliwanag sa sumusunod na link:
access.redhat.com/documentation/en-US/Red_…
Sa oder upang simulan ang iyong aplikasyon, ilabas ang sumusunod na utos:
sudo systemctl simulan ang application.service
Tandaan: maaaring matanggal ang extension ng serbisyo.
Upang ihinto ang application:
sudo systemctl stop application.service
Kung ang file ng pagsasaayos ay binago at nais mong i-reload ang mga setting:
sudo systemctl reload application.service
Upang muling simulan ang application:
sudo systemctl restart application.service
Upang paganahin ang awtomatikong nagsisimula sa boot:
sudo systemctl paganahin ang application.service
Kung pinagana ito, susubukan ng manager ng systemd na proseso na simulan ang application batay sa mga setting na ibinigay ng system file.
Upang huwag paganahin ito, gamitin ang parehong utos tulad ng nasa itaas, ngunit may parameter na 'huwag paganahin'.
Kung inilagay mo ang Restart = laging nasa file ng serbisyo, susubaybayan ng systemd ang proseso at kung hindi ito matagpuan sa listahan ng proseso, susubukan nitong awtomatikong i-restart ito.
Kung ilalagay mo
RestartSec = 30
pagkatapos ng direktang pag-restart, maghihintay ito ng 30 segundo bago subukang i-restart ang proseso. Maaari itong maging kapaki-pakinabang, bilang isang tuluy-tuloy na pagtatangka muli ng isang pagkabigo na serbisyo / aplikasyon ay maaaring humantong sa mataas na demand sa system (pagsulat ng mga tala ng error, atbp)
Tulad ng nakikita mo, ang systemd ay nagbibigay na ng ilang mga paraan upang masubaybayan ang mga proseso. Gayunpaman, sa ilang mga kaso ito ay maaaring hindi sapat. Paano kung ang isang proseso ay hindi lalabas (mananatili pa rin ito sa listahan ng proseso), ngunit humihinto ito sa pagtugon. Sa kasong ito, upang matiyak na ang isang proseso ay talagang gumagana at tumatakbo, maaaring kailanganin mo ng mga karagdagang pagsusuri upang maisagawa.
Dito magagamit ang mga script mula sa itinuro na ito.
Hakbang 2: Pag-configure at Paggamit ng Mga Script ng Checker ng Serbisyo
Kung kailangan mo ng higit na kontrol sa iyong mga tumatakbo na proseso / serbisyo, ang mga script na ito ay makakatulong, sigurado.
Dahil ang code ay bahagyang malaki, Na-upload ito sa github at maaaring matagpuan sa ilalim ng sumusunod na imbakan:
github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh
Ang 'puso' ng buong pakete ay ang
checkService.sh
Bago gamitin ito, dapat mong palitan ang buong landas sa folder ng serbisyo. Maaari itong matagpuan sa simula ng iskrip.
Maaaring subaybayan ng script ang maraming proseso at magsagawa ng karagdagang gawain, tulad ng inilarawan sa ibaba:
Dumadaan ito sa bawat file mula sa / mga serbisyo na subfolder na mayroong.serv o.check mga extension at susuriin kung mayroong isang aktibong proseso na tinatawag na 'application'.
Kung walang '.check' na file para sa isang application, ang application.serv file lamang ang:
Kung ang proseso ay aktibo, isasaalang-alang nito ang proseso bilang pagiging aktibo
Kung ang proseso ay hindi aktibo, i-restart nito ang serbisyo sa pamamagitan ng paglabas ng sumusunod na utos:
i-restart ang systemctl application
kung ang.serv file ay walang laman!
Kung ang.serv file ay hindi walang laman at may mga karapatang maisakatuparan, susubukan nitong patakbuhin ito bilang isang simpleng script ng BASH.
Kapaki-pakinabang ito kung may isang bagay na karagdagan na kailangang gawin bukod sa pag-restart lamang ng serbisyo.
Halimbawa Ang pag-restart ng spamd lamang ay hindi sapat.
Maaaring i-edit ng isa ang nilalaman ng naturang isang file ng serv alinsunod sa mga pangangailangan.
Ang isa pang halimbawa ay ang pcscd.serv file. Sa kasong ito maraming iba pang mga proseso ang na-restart / pinatay din.
Kung mayroong isang file ng tseke, pagkatapos suriin kung tumatakbo ang proseso, tatakbo rin ang file ng script na ito upang magsagawa ng karagdagang mga pagsusuri.
Halimbawa, para sa serbisyo ng oscam, gumawa kami ng isang check file na sumusubok na kumonekta sa web interface na ito upang makita kung ito ay matagumpay. Kung hindi, kung gayon, sa kabila ng pagkakaroon ng proseso ay aktibo, ang serbisyo ay hindi tumutugon at kailangang i-restart. Ang pag-restart ng serbisyo ay dapat gumanap / tawagan ng.check na file mismo.
Ang isa pang halimbawa ay ang serbisyo ng mediatomb DLNA.
Ito ay isang maliit na server na nagbibigay ng nilalamang video / audio sa mga kliyente ng DLNA at i-broadcast ang sarili nito sa network. Minsan nag-hang ang serbisyo at hindi na ito makakatuklas ng kakayahang muli, ngunit ang proseso ay magiging aktibo pa rin. Upang suriin kung ang serbisyo ay natuklasan, ginamit ang CLI utility na tinawag na gssdp-Discover. Ang buong code na suriin ang server ng DLNA ay inilagay sa loob ng isang mediatomb.check script.
Ito ay ilan lamang sa mga halimbawa sa kung paano mo magagamit ang.serv at.check files.
Upang masubaybayan ang isang bagong serbisyo, dapat kang lumikha ng isang.serv at, kung kinakailangan din ng isang check file at isulat ang kaukulang script sa loob nila.
Kung suriin lamang ang pagkakaroon ng proseso kung sapat, pagkatapos ay isang walang laman na.serv file ay sapat. Kung dapat gumanap ng karagdagang mga pagsusuri, dapat gawin ang isang.check file at isang maliit na script ang dapat maisulat upang magawa ang trabaho.
Of cource, ang script na.sh ay dapat na patakbuhin nang pana-panahon, samakatuwid ang isang cron job ay dapat ding likhain para dito:
#check tumatakbo ang mga serbisyo tuwing 5 minuto * / 5 * * * * /var/bin/ServiceCheck/checkService.sh> / dev / null
Hakbang 3: Pangwakas na Mga Saloobin
Inaasahan kong makikita mo ang kapaki-pakinabang na package na ito dahil maaari nitong lubos na masubaybayan ang mga proseso ng Linux at sana ay mabawasan ang downtime ng iyong mga serbisyo.
Huwag mag-atubiling mag-upload ng mga karagdagang script sa github, kung lumikha ka ng mga bago. Ipaalam lamang sa akin at idaragdag kita bilang nag-ambag.
Inirerekumendang:
ESP32 Robot Gumagamit ng Mga Serbisyo: 6 Mga Hakbang (na may Mga Larawan)
ESP32 Robot Paggamit ng Mga Serbisyo: Nag-eksperimento ako gamit ang iba't ibang mga board ng pag-unlad ng ESP32, kamakailan ay nag-order ako ng isa sa iba't ibang TTGO T-Beam na kasama ng isang socket ng Baterya upang idagdag ang iyong sariling 18650 Lipo, talagang tumatagal ito ng ilang pagiging kumplikado sa regulasyon ng kuryente mula sa bumuo
2 Mga Potenomiter at 2 Mga Serbisyo: Kinokontrol na Paggalaw Sa Arduino: 4 na Hakbang
2 Mga Potenomiter at 2 Mga Serbisyo: Kinokontrol na Paggalaw Sa Arduino: Una kailangan mong magtipon ng mga nauugnay na materyales upang pagsamahin ang circuit na ito
Kinokontrol ng Word Clock ng 114 na Mga Serbisyo: 14 Mga Hakbang (na may Mga Larawan)
Ang Word Clock na Kinokontrol ng 114 Servos: Ano ang mayroon ng 114 LEDs at palaging tumatakbo? Tulad ng maaari mong malaman ang sagot ay isang salitang orasan. Ano ang mayroon ng 114 LEDs + 114 servos at palaging gumagalaw? Ang sagot ay ang orasan na kinokontrol ng servo para sa proyektong ito Nakipagtulungan ako sa isang kaibigan ko na lumingon
Pagpapatibay ng Mga Serbisyo ng SSL sa Iyong Web Server (Apache / Linux): 3 Mga Hakbang
Pagpapatibay ng Mga Serbisyo ng SSL sa Iyong Web Server (Apache / Linux): Ito ay isang napakaikling tutorial na nag-aalala sa isang aspeto ng cyber-security - ang lakas ng serbisyo ng ssl sa iyong web server. Ang background ay ang mga serbisyo ng ssl sa iyong web site na ginagamit upang matiyak na walang sinuman ang maaaring mag-hack ng data na kung saan ay nai-transmi
Mga Pribadong Servers ng WoW: 3 Mga Hakbang
WoW Pribadong Servers: Ipapakita nito sa iyo kung paano maglaro ng World of Warcraft nang hindi nagbabayad !!! May mga server na agad na nagbibigay sa iyo ng antas 80, mga libreng item, atbp. Mayroon ding mga regular na server kung nais mong maglaro para sa totoong. Tandaan: maaaring kailanganin mong magbayad para sa aktwal na laro,