Mundarija:
- 1 -qadam: Systemd tomonidan taqdim etilgan usullardan foydalanish
- 2 -qadam: Service Checker skriptlarini sozlash va ishlatish
- 3 -qadam: Yakuniy fikrlar
Video: Linux serverlari uchun Service Monitor skriptlari: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Barqaror va doimo ishlaydigan tizimga ega bo'lish, hatto Linuxdan foydalanayotgan bo'lsangiz ham, qiyin ish bo'lishi mumkin.
Zamonaviy dasturiy ta'minot paketlarining murakkabligi va noto'g'ri kodlash tufayli, muqarrar ravishda, ba'zi jarayonlar vaqti -vaqti bilan ishdan chiqishi mumkin. Agar siz serverda ishlayotgan bo'lsangiz va ba'zi odamlar bu xizmatlarga ishonsa, bu yomon ish bo'lishi mumkin.
1 -qadam: Systemd tomonidan taqdim etilgan usullardan foydalanish
Siz bilganingizdek, zamonaviy Linux operatsion tizimlarining ko'pchiligi systemd dan foydalanadi.
Agar siz systemd bilan tanish bo'lmasangiz, bu vikipediyaga ko'ra:
"… Linux tarqatishida UNIX System V yoki Berkeley Software Distribution (BSD) boshlang'ich tizimlari o'rniga, foydalanuvchi maydonini yuklash va keyinchalik barcha jarayonlarni boshqarish uchun ishlatiladigan tizim."
Ko'pchilik haligacha nima uchun yaxshi eski tizimni bu murakkab jarayonni boshqarish tizimiga almashtirish kerakligi haqida bahslashmoqda, lekin quyidagi havolada yaxshi tushuntirishni topish mumkin:
www.tecmint.com/systemd-replaces-init-in-l…
Eng muhim yaxshilanish shundaki, u tizimni boshlang'ichdan ko'ra tezroq ishga tushirishi mumkin, chunki tizimni ishga tushirishda ketma -ket yondashuv o'rniga yuklashda bir vaqtda va parallel ishlash.
Systemd -ga kirmasdan, jarayonni systemd -ga qo'shish uchun siz xizmat faylini yaratishingiz kerak. Bunday faylning sintaksisi juda oddiydan to murakkabgacha o'zgarishi mumkin va biz bu haqda batafsil ma'lumot bermaymiz. Asosiy.service faylga ega bo'lish uchun quyidagi yozuvlardan foydalanish kifoya:
[Birlik] Tavsif = applicationDocumentation tavsifi = https://wikipedia.org/ After = local-fs.target network.target [Service] Type = simpleExecStart =/usr/sbin/applicationExecReload =/usr/sbin/application reloadExecStop =/ usr/sbin/application stopRestart = doim [O'rnatish] WantedBy = multi-user.target
Buni/lib/systemd/system papkasida application.service fayliga joylashtiring.
Bu variantlarning har biri nima qilishini quyidagi havolada tushuntirib beramiz:
access.redhat.com/documentation/en-US/Red_…
Arizangizni ishga tushirish uchun quyidagi buyruqni bering:
sudo systemctl application.service -ni ishga tushiring
Eslatma:.service kengaytmasini o'tkazib yuborish mumkin.
Arizani to'xtatish uchun:
sudo systemctl stop application.service
Agar konfiguratsiya fayli o'zgartirilgan bo'lsa va sozlamalarni qayta yuklamoqchi bo'lsangiz:
sudo systemctl reload application.service
Ilovani qayta ishga tushirish uchun:
sudo systemctl application.service -ni qayta ishga tushiring
Yuklashda avtomatik ishga tushirishni yoqish uchun:
sudo systemctl application.service -ni yoqing
Agar bu yoqilgan bo'lsa, systemd jarayon menejeri tizim fayli taqdim etgan sozlamalar asosida dasturni ishga tushirishga harakat qiladi.
O'chirish uchun yuqoridagi buyruqni ishlating, lekin "o'chirish" parametri bilan.
Agar siz Restart = ni har doim xizmat fayliga joylashtirsangiz, systemd jarayonni kuzatadi va agar jarayonlar ro'yxatida topilmasa, uni avtomatik ravishda qayta ishga tushirishga harakat qiladi.
Agar joylashtirsangiz
RestartSec = 30
qayta boshlash buyrug'idan so'ng, jarayonni qayta boshlashdan oldin 30 soniya kutadi. Bu foydali bo'lishi mumkin, chunki ishlamayotgan xizmat/ilovani uzluksiz qayta ishga tushirish tizimda talab katta bo'lishi mumkin (xatolar jurnalini yozish va hk).
Ko'rib turganingizdek, systemd allaqachon jarayonlarni kuzatish uchun ba'zi vositalarni taqdim etadi. Biroq, ba'zi hollarda, bu etarli bo'lmasligi mumkin. Agar jarayon chiqmasa (u jarayonlar ro'yxatida qoladi), lekin u javob berishni to'xtatadi. Bunday holda, jarayon haqiqatan ham ishlayotganiga ishonch hosil qilish uchun sizga qo'shimcha tekshiruvlar kerak bo'lishi mumkin.
Bu erda ushbu ko'rsatmali skriptlar yordam beradi.
2 -qadam: Service Checker skriptlarini sozlash va ishlatish
Agar sizga ishlayotgan jarayonlar/xizmatlarni ko'proq nazorat qilish kerak bo'lsa, bu skriptlar albatta yordam beradi.
Kod biroz katta bo'lgani uchun u github -ga yuklangan va uni quyidagi omborda topish mumkin:
github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh
Butun paketning "yuragi" bu
checkService.sh
Uni ishlatishdan oldin siz xizmat papkasining to'liq yo'lini o'zgartirishingiz kerak. Buni skript boshida topish mumkin.
Skript bir nechta jarayonlarni kuzatishi va quyida ta'riflanganidek, qo'shimcha vazifalarni bajarishi mumkin:
U.serv yoki.check kengaytmalariga ega bo'lgan /services pastki papkasidagi har bir fayl orqali o'tadi va "ilova" deb nomlangan faol jarayon mavjudligini tekshiradi.
Agar ilova uchun ".check" fayli bo'lmasa, faqat application.serv fayli:
Agar jarayon faol bo'lsa, u jarayonni faol deb hisoblaydi
Agar jarayon faol bo'lmasa, u quyidagi buyruqni berish orqali xizmatni qayta ishga tushiradi:
systemctl qayta ishga tushirish dasturi
agar.serv fayli bo'sh bo'lsa!
Agar.serv fayli bo'sh bo'lmasa va bajariladigan huquqlarga ega bo'lsa, uni oddiy BASH skript sifatida ishlatishga harakat qiladi.
Agar xizmatni qayta ishga tushirishdan tashqari, biror narsa qilish kerak bo'lsa, bu foydali bo'ladi.
Masalan, spamd.serv faylida, yuqoridagi repo -dan, agar spam -xizmat o'chib ketgan bo'lsa, uning o'rniga spamassassin xizmatini qayta boshlash kerak, bu ham spam -ni qayta ishga tushiradi. Faqat spam -ni qayta ishga tushirish etarli bo'lmaydi.
Ehtiyojlarga ko'ra, bunday xizmat faylining mazmunini o'zgartirish mumkin.
Yana bir misol - pcscd.serv fayli. Bunday holda, yana bir qancha jarayonlar qayta boshlandi/o'ldirildi.
Agar tekshirish fayli bo'lsa, jarayon ishlayotganini tekshirgandan so'ng, u qo'shimcha tekshiruvlarni bajarish uchun ushbu skript faylini ishga tushiradi.
Masalan, oscam xizmati uchun biz uning muvaffaqiyatli yoki yo'qligini bilish uchun uning veb -interfeysiga ulanishga harakat qiladigan tekshirish faylini yaratdik. Agar shunday bo'lmasa, jarayon faol bo'lishiga qaramay, xizmat javob bermayapti va uni qayta ishga tushirish kerak. Xizmatni qayta ishga tushirish.check faylining o'zi tomonidan amalga oshirilishi/chaqirilishi kerak.
Yana bir misol - DLNA mediatomb xizmati.
Bu DLNA mijozlariga video/audio tarkibini taqdim etadigan va o'zini tarmoq orqali uzatadigan kichik server. Ba'zida xizmat to'xtab qoladi va uni boshqa topib bo'lmaydi, lekin jarayon hali ham faol bo'ladi. Xizmat kashf qilinishini tekshirish uchun gssdp-discover deb nomlangan CLI yordam dasturi ishlatilgan. DLNA serverini tekshiradigan butun kod mediatomb.check skriptiga joylashtirilgan.
Bu.serv va.check fayllaridan qanday foydalanish mumkinligi haqida bir necha misol.
Yangi xizmatni kuzatish uchun siz.serv va agar kerak bo'lsa, tekshirish faylini yaratishingiz va ularga tegishli skriptni yozishingiz kerak.
Agar jarayonning mavjudligini tekshirish etarli bo'lsa, bo'sh.serv fayli etarli bo'ladi. Agar qo'shimcha tekshiruvlar o'tkazilsa, bu ishni bajarish uchun.check faylini yaratish va kichik skript yozish kerak.
Albatta,.sh skriptini vaqti -vaqti bilan bajarish kerak, shuning uchun cron ishi ham yaratilishi kerak:
#har 5 daqiqada ishlaydigan xizmatlarni tekshiring */5 * * * * /var/bin/ServiceCheck/checkService.sh>/dev/null
3 -qadam: Yakuniy fikrlar
Umid qilamanki, siz ushbu paketni foydali deb topasiz, chunki u Linux jarayonlarini kuzatib boradi va sizning xizmatlaringizning ishlamay qolishini kamaytiradi.
Agar siz yangisini yaratsangiz, github -ga qo'shimcha skriptlarni yuklashingiz mumkin. Menga xabar bering, shunda men sizni qo'shuvchi sifatida qo'shaman.
Tavsiya:
Raspberry Pi uchun yangi boshlanuvchilar uchun qo'llanma: 6 qadam (rasmlar bilan)
Raspberry Pi uchun yangi boshlanuvchilar uchun qo'llanma: Men bir muncha vaqt Arduino bilan ishlaganman. Bu oson, arzon va ishni bajaradi. Ammo so'nggi paytlarda men IoT loyihalariga ko'proq moyil bo'ldim. Shunday qilib, men ESP ishlab chiqish kartasini ishlata boshladim va u juda yaxshi ishladi. Ammo endi men oldinga siljishni xohlayman
Irrigações Automatizadas Com Web Service Utilizando Python: 5 qadam (rasmlar bilan)
Python -ning avtomatik xizmatlari avtomatizatsiyalari avtomatik ravishda o'rnatiladi: bu sizning kompyuteringiz va kompyuteringizning monitoringi uchun zarur bo'lgan barcha ma'lumotlarni o'z ichiga oladi. rosa, temperatura, ar, ultrabinafsha nurlar, velosidad va vento e condi va boshqalarni bosing
Maxsus XP - sozlash uchun Visual Basic skriptlari: 6 qadam
Maxsus XP - sozlash uchun Visual Basic skriptlari: XP ko'rinishini o'zgartirishning oddiy usuli - bu $ 1000 dollarlik GUI* dasturidan foydalanish, to'g'rimi? YANGI! Siz dasturlarga pul sarflashingiz mumkin, lekin agar tekin qila olsangiz nima uchun to'laysiz? Ushbu qo'llanmada men sizga buni qanday qilib oson qilishini ko'rsataman, shunda u $ 0 turadi va
WoW xususiy serverlari: 3 qadam
WoW Private Servers: Bu sizga World of Warcraft -ni pul to'lamasdan qanday o'ynashni ko'rsatib beradi !!! Bir zumda sizga 80 -darajali, bepul elementlar va boshqalarni beradigan serverlar bor. Agar siz haqiqiy o'ynashni xohlasangiz, oddiy serverlar ham bor. Eslatma: sizga haqiqiy o'yin uchun pul to'lash kerak bo'lishi mumkin
Greasemonkey skriptlari va KoL: 3 qadam
Greasemonkey skriptlari va KoL: Men buni o'rgatyapman, chunki men odamlarning KoL hisoblarining skrinshotlarini ko'rganman, va men ilgari ko'rmagan rang va havolalar bor edi. Ularni ko'rib, men o'yladim: " Odam, men buni xohlardim " Shunday qilib, biroz tuzatgandan so'ng