Service manager — operatsion tizim xizmatlarini ishga tushirish, to‘xtatish, kuzatish va ular orasidagi bog‘liqlikni boshqaradigan tizim komponentidir. Unix muhitida systemd, OpenRC, launchd va boshqa implementatsiyalar mavjud. U oddiy background jarayondan farqli ravishda deklarativ hayot sikli, restart siyosati, log va privilege chegaralarini beradi.
Unit va dependency
Xizmat konfiguratsiyasi executable, argument, environment, user, ishchi katalog va dependencylarni belgilaydi. requires kabi qattiq bog‘liqlik xizmat muvaffaqiyatsiz bo‘lsa boshqa unitga ta’sir qiladi; ordering faqat qaysi biri oldin boshlanishini bildiradi. “Tarmoq unitidan keyin” bo‘lish internet yoki DNS tayyor degani emas, kerakli resurs readiness bilan tekshiriladi.
Socket activation service ishga tushmasidan oldin socketni manager ochib turishiga imkon beradi. Birinchi ulanishda xizmat boshlanadi va tayyor descriptorni oladi. Timer unit cron o‘rnida rejalashtirilgan vazifani boshqaradi. Path activation fayl tizimi hodisasiga javob beradi.
Jarayon hayot sikli
Manager processni start qiladi, main PID yoki cgroup bo‘yicha barcha bolalarni kuzatadi. Dastur fork qilib daemonlashishi shart emas; foreground rejim supervisor uchun aniqroq. Stop signal yuborilgach graceful muddat beriladi, keyin qolgan jarayonlar siyosatga ko‘ra tugatiladi.
Restart faqat tanlangan exit code, signal yoki watchdog timeoutda ishlashi mumkin. Juda tez qayta crash bo‘lsa start limit loopni to‘xtatadi. Cheksiz restart ildiz muammoni yashirib, dependency va log tizimiga yuk beradi.
Readiness va watchdog
Jarayon mavjudligi xizmat tayyorligini bildirmaydi. Type va notification protokoli database migration, port listen va cache yuklanishidan keyin ready signal berishi mumkin. Bog‘liq xizmat shundan keyin boshlanadi. Watchdog dasturdan davriy heartbeat kutadi; event loop qotib qolsa process hali tirik bo‘lsa ham restart qilinadi.
Health check tashqi dependency vaqtincha uzilganda darhol restart qilmasligi kerak, aks holda restart storm yuz beradi. Liveness va readiness alohida semantikaga ega.
Xavfsizlik va resurslar
Xizmat root o‘rniga maxsus user bilan ishlaydi. Capability, filesystem namespace, read-only yo‘llar, syscall filtri va network cheklovi zarar doirasini kamaytiradi. Secret unit faylida ochiq yozilmay, credential store yoki himoyalangan file descriptor orqali beriladi.
CPU, memory, process va descriptor limitlari cgroup hamda resource directive bilan qo‘yiladi. Limit juda past bo‘lsa qonuniy peakda xizmat o‘ladi, juda yuqori bo‘lsa noisy neighborga aylanadi. Manager status, exit sabab, restart soni va resurs sarfini monitoringga chiqaradi. Konfiguratsiya o‘zgarishi reload va rollback jarayoni bilan test qilinadi.
Yangilash va observability
Service manager unit konfiguratsiyasini o‘qiganidan keyin fayl o‘zgarsa reload talab qilishi mumkin. daemon-reload faqat manager ta’rifini yangilaydi, xizmat kodini restart qilmasligi mumkin; reload va restart semantikasi ajratiladi. Zero-downtime yangilanishda eski va yangi process qisqa vaqt yonma-yon ishlashi, socket managerda qolishi mumkin. Loglar stdout/stderr yoki jurnalga strukturalangan identifikator bilan yuboriladi. Rate limit crash loopning diskni to‘ldirishini cheklaydi, lekin birinchi xato xabari saqlanadi. Boot critical path tahlili unitning start va readiness vaqtini dependencylar bilan ko‘rsatib, keraksiz serial kutishni topadi.
Xizmat menejeri holatni kuzatish bilan birga bog‘liqliklarni ham boshqaradi. Masalan, tarmoq tayyor bo‘lmaguncha unga muhtoj xizmatni kutdirishi, muvaffaqiyatsiz jarayonni belgilangan cheklov asosida qayta ishga tushirishi mumkin.