لينكس / المتقدم: الحدود والأمان والاسترداد / الدرس 18
بناء خدمات موثوقة وتشخيص الحوادث
اربط الاستعداد وإعادة التشغيل والعزل وحفظ الأدلة والاسترداد المنضبط بدورة خدمة عملية.
في هذه الصفحة
أهداف الدرس
- اختيار نوع خدمة يلائم نموذج العملية.
- تمييز الاستعداد والحيوية والمحاولات وحدود التكرار.
- فحص الحوادث بخط زمني سببي قابل للاختبار.
البدء لا يساوي الاستعداد
قد توجد العملية قبل فتح المقبس وتحميل الحالة. يؤكد Type=exec استدعاء الملف التنفيذي لا اكتمال التهيئة. يتيح Type=notify للتطبيق الداعم إعلان الاستعداد. ويناسب Type=oneshot العمل المنتهي، بينما يتطلب التفرع القديم نموذجاً وهوية عملية موثوقين. ليس ExecStart أمراً تفاعلياً تلقائياً؛ تحتاج معاملات الصدفة مفسراً صريحاً عند لزومها. فضّل التنفيذ المباشر ووسائط واضحة ليتعرف المدير العمل ويشرف عليه.
تحتاج المحاولات سياسة محدودة
قد يعالج Restart=on-failure بعض الخروج المفاجئ ولا يصلح إعداداً خاطئاً أو اعتماداً غائباً. يفصل RestartSec= المحاولات وقد توقف حدود البدء التكرار. يختلف الإيقاف المقصود عن الانهيار. حدد السلوك واجعل البدء قابلاً للتكرار دون مضاعفة العمل الدائم. وإذا استهلكت الخدمة مهام فنسق الإقرار ونقاط الحفظ مع التطبيق. تحسن الإعادة التوفر فقط إذا بقيت انتقالات الحالة صحيحة عبر الانقطاع والعودة.
[Unit]
Description=Synthetic report worker for review
StartLimitIntervalSec=60
StartLimitBurst=3
[Service]
Type=exec
ExecStart=/usr/local/libexec/example-worker --foreground
User=example-worker
Restart=on-failure
RestartSec=5
NoNewPrivileges=yes
PrivateTmp=yes
الملف التنفيذي والحساب افتراضيان ولا يُثبتان بنسخ المقطع. توضح الوحدة محاولات محدودة وإعدادي عزل وليست نشراً كاملاً.
تقليل الوصول دون تعطيل الحالة المطلوبة
قد يفصل العزل المؤقتات ويمنع اكتساب امتيازات ويقيد الكتابة ويقلل القدرات. يغير كل إعداد عقد التنفيذ ويجب اختباره مع التطبيق. لا يجعل PrivateTmp كل الملفات خاصة، ولا يزيل NoNewPrivileges امتيازات قائمة. تحتاج حماية الملفات المقروءة مواقع كتابة للحالة المشروعة. تبقى الهوية مهمة. راجع الدليل المثبت لأن الخيارات وتنفيذها يعتمدان الإصدار والنواة وسياق مدير المستخدم أو النظام.
حفظ الفشل الأول وبناء خط زمني
ابدأ سجل الحادث بالأثر والوقت والنطاق والتغييرات الأخيرة. التقط النتيجة وأدلة الاستدعاء والسجل وأحداث cgroup والاعتمادات قبل الإعادة. اربط الأزمنة بحذر لاختلاف الساعات والمناطق. افصل المشاهدة عن الفرضية: الرفض دليل وخطأ النشر المشتبه فرضية. اختر فحصاً قليل المخاطر يميز الاحتمالات وحدّث الفرضية وتجنب تغييرات غير مسجلة. قد تدمر الإعادة الدليل الأول وتولد عرض حد التكرار.
systemctl show example-worker.service -p Result -p ExecMainCode -p ExecMainStatus -p NRestarts
journalctl -u example-worker.service -b -n 80 --no-pager
systemctl cat example-worker.service
تفحص أوامر القراءة وحدة افتراضية مهيأة. قارن الفشل الأول برسائل المحاولة اللاحقة. لا تتضمن إعادة أو مسح فشل أو تعديل إعداد.
يحتاج الاسترداد والمنع أدلة مختلفة
يثبت الاسترداد عودة الخدمة المفيدة، ويشرح تحليل السبب الآلية ولماذا فاتت الضوابط. قد يعيد الرجوع التوفر دون تفسير كامل، فسجل عدم اليقين. افحص طلب تطبيق واتساق البيانات والاعتمادات بعد الاسترداد المصرح. ثم أعد الآلية في بيئة مؤقتة وأضف حماية هادفة كفحص المدخلات أو الإعداد. وثق خطاً زمنياً والعوامل والإصلاح المختبر وفحصاً يكشف التكرار.
الأخطاء الشائعة وإصلاحها
اعتبار النشاط استعداداً
- لماذا يحدث؟
- اختلط بدء العملية بتهيئة التطبيق.
- كيف تصلحه؟
- استخدم نموذج استعداد مدعوماً وفحصاً وظيفياً.
- كيف تتجنب تكراره؟
- حدد الاستعداد قبل ترتيب الاعتمادات.
تحول حلقة الإعادة إلى إصلاح
- لماذا يحدث؟
- أخفت المحاولات فشل إعداد أو حالة دائماً.
- كيف تصلحه؟
- التقط السبب الأول وحدد المحاولات.
- كيف تتجنب تكراره؟
- اربط سياسة الإعادة بتصنيف الفشل.
نسخ إعدادات العزل دون اختبار
- لماذا يحدث؟
- جُهلت المسارات والامتيازات المطلوبة.
- كيف تصلحه؟
- اختبر عقد الوصول في صورة مؤقتة مطابقة.
- كيف تتجنب تكراره؟
- راجع كل قيد مقابل السلوك المطلوب.
اختبر فهمك
1. تبلغ وحدة حد البدء بعد أخطاء ملف مفقود متطابقة. ما التشخيص التالي؟
اعرض الحل المشروح
عامل رسالة الحد كنتيجة للمحاولات. افحص الخطأ الأول ومجلد العمل والوسائط والتركيبات ومحتوى النشر. بعد إصلاح السبب فقط تنظر خطة المختبر المصرحة في مسح الحد والبدء.
2. أعاد الرجوع الطلبات. هل اكتمل التحليل؟
اعرض الحل المشروح
لا. ثبت الاسترداد وبقيت آلية التغيير والمنع. احفظ الإصدارين واربط الأدلة وأعد الفشل بأمان وتحقق من إصلاح موجه. صرّح بما لم يُحسم بدلاً من تقديم الارتباط إثباتاً.
أهم ما تعلمته
- اختر نموذج عملية واختبر استعداد التطبيق.
- احفظ الأدلة وحدد المحاولات وتحقق وظيفياً من الاسترداد.