AzLearn

فحص الخدمات

Service Checks

مفهوم ~18 دقيقة

فحص الخدمات — Service Checks

فحص الخدمة لا يعني دائماً قراءة كلمة واحدة. قد تكون الخدمة active لكنها لا تستجيب. في Bash يمكنك بناء فحص صغير يجمع أكثر من إشارة: حالة الخدمة، منفذ مفتوح، أو طلب health. في هذا الدرس نركز على شكل التقرير، لا على أوامر نظام محددة قد تختلف بين البيئات.

ابدأ بتسمية الفحص بدقة. check_service_status يختلف عن check_http_health. الأول يقرأ حالة systemd مثلاً، والثاني يرسل طلباً للبرنامج نفسه. في التشغيل الحقيقي، الصحة الأقوى هي استجابة التطبيق، لا حالة مدير الخدمات فقط.

مثال تعليمي

script.sh

في سكربت واقعي على Linux مع systemd، يمكنك استبدال البيانات الثابتة بقراءة حقيقية:

# اقرأ حالة فعلية من systemd — Read actual status from systemd
service="nginx"
if systemctl is-active --quiet "$service"; then
    status="active"
else
    status="inactive"
fi
echo "$service => $status"

systemctl is-active --quiet ترجع exit status دون طباعة، مما يجعلها مناسبة داخل if. انتبه أنها تعتمد على وجود systemd؛ في macOS أو بيئات Docker بسيطة لن تكون متاحة.

active ليست نهاية القصة

إذا كانت الخدمة web، أضف فحص HTTP. إذا كانت worker، أضف فحص queue أو log حديث. Bash جيد لتجميع هذه الإشارات في تقرير واحد.

تحدي — Challenge