لينكس / دليل حلول تحريري
تشخيص خدمة تفشل عند البدء
تتبع فشل بدء خدمة systemd افتراضية من الإعداد الفعلي إلى الخطأ السببي الأول ثم تحقق من الاسترداد المنضبط.
قاعدة معرفة للقراءة فقط · بلا تعليقات عامة
تعرّف على الأعراض
تفشل example-worker.service أو تكرر المحاولات وقد تبلغ تكرار البدء بسرعة. يعجز المستخدم عن التقرير. وقد تكون الوحدة ممكّنة؛ فسياسة التفعيل لا تشهد على صحة التشغيل.
افهم الأسباب المحتملة
- قد يغيب التنفيذي أو تخطئ الوسائط أو المجلد أو المستخدم أو تُرفض البيانات أو يفسد الإعداد أو يشغل المنفذ أو يغيب اعتماد أو تنهي الموارد العملية. غالباً يأتي الحد بعد سبب سابق. وقد تكون oneshot سليمة وغير نشطة، فأكد دورة الحياة.
1. التقاط الحالة قبل المحاولة
سجل الوقت والأثر والاسم والتغييرات. التقط النتيجة والسجل المحدود قبل الإعادة كي لا يُدفن الخطأ الأول. اختر مدير النظام أو المستخدم الصحيح فهما منفصلان. تفحص الأوامر صورة مؤقتة مهيأة فقط ولا تغير مدير المضيف.
systemctl show example-worker.service -p ActiveState -p SubState -p Result -p ExecMainStatus
journalctl -u example-worker.service -b -n 80 --no-pager
احفظ أول خطأ سببي في الفترة لا سطر الحد الأخير فقط. تعتمد المخرجات والحالات على السيناريو.
2. فحص عقد التنفيذ الفعلي
استخدم cat للتعريف والإضافات وshow للخصائص. افحص ExecStart وUser وWorkingDirectory ومصادر البيئة والمسارات. ليس ExecStart سطر صدفة؛ فلا تعمل الأنابيب والتوجيه تلقائياً. قارن التنفيذي بالنشر أو الحزمة. ميّز إعادة تحميل المدير من التطبيق إذا تغير القرص؛ فلا تنفذهما القراءة.
systemctl cat example-worker.service
systemctl show example-worker.service -p ExecStart -p User -p WorkingDirectory -p ControlGroup
افحص الضروري فقط فقد تحتوي البيئة أو الأوامر بيانات حساسة. لا يعيد المثال التحميل أو التشغيل.
3. اختبار سبب واحد في السياق المطابق
حوّل الخطأ الأول إلى فرضية محددة. للملف الغائب افحص المسار والتركيب والنشر وافتراض المجلد. للرفض افحص هوية الخدمة والآباء وACL والعزل. وللمقبس المشغول افحص العنوان والمنفذ قبل تغييره. قد ينجح أمر في جلسة الدخول ويفشل ببيئة الخدمة وقيودها. استخدم تحقق إعداد موثقاً على نسخة عند توفره.
4. إصلاح السبب بالإجراء المصرح
جهز أصغر تغيير مختبري مراجع واحفظ السابق. افصل العيب عن نتيجة حد البدء؛ فمسح الحد لا ينشئ ملفاً أو يصلح إعداداً. يمكن للمسؤول المصرح تطبيق التحميل أو الإعادة الموثقة بعد التحقق. لا تضعف العزل أو تشغل بالجذر لإخفاء خطأ وصول. سجل التغيير واحفظ الرجوع قبل الاسترداد.
تحقق من نجاح الإصلاح
أكد دورة الوحدة ونجاح تقرير على مستوى التطبيق. راجع السجل الجديد واعتمادات الخدمة ودورة أخرى للتكرار. قد يكون اكتمال oneshot وخرجها شرط القبول لا النشاط. احفظ الربط بين الاسترداد والتغيير المختبر.
امنع تكرار المشكلة
- تحقق من إعداد الوحدة والتطبيق عند النشر واختبر بهوية الخدمة وحدد الاستعداد والمحاولات ومسار الاسترداد. احفظ السجلات باحتفاظ مناسب. اكتب سجلاً يفصل السبب المشاهد والعوامل والاسترداد وعدم اليقين.