تشخيص خادم SUSE الذي يتوقف عند شاشة إيقاف تشغيل systemd

إذا توقف خادم SUSE Linux Enterprise Server عن العمل أثناء إيقاف تشغيل systemd، فحدد الوحدة التي بها مهمة إيقاف قيد التشغيل أو افحص الرسائل الأخيرة من عملية التشغيل السابقة، ثم أصلح تلك الوحدة أو تبعياتها. الوحدة هي مورد مُدار بواسطة systemd مثل خدمة أو وحدة تخزين؛ ومهمة الإيقاف هي طلب systemd لإيقاف تشغيلها. لا تقم بتقليل مهلة النظام العامة أو فرض إيقاف التشغيل كحل أولي، لأن الخدمة أو نظام الملفات قد لا يزال يُغلق الملفات أو يكتب البيانات.

يتبع هذا الدليل وثائق SLES 15 SP7 التي تم التحقق منها في أكتوبر 2026. وتعتمد سياسة الإيقاف الدقيقة على مورد الخدمة والتخزين، لذا استخدم إرشاداتهم لأي تغييرات خاصة بالوحدة.

1. راقب عملية الإغلاق بأمان

الخطوة الأولى: سجل الرسالة بدقة وانتظر الحصول على دليل مفيد

إذا عرضت وحدة التحكم رسالة "عملية إيقاف قيد التشغيل لـ..." مع عد تنازلي، فدوّن اسم الخدمة أو نقطة التحميل وما إذا كان المؤقت قد تغير. هذا يعني أن systemd ينتظر عملية إيقاف تلك الوحدة، وليس بالضرورة أن نظام التشغيل قد تعطل؛ فقد تحتاج قواعد البيانات ووحدات التخزين البعيدة إلى وقت للإغلاق بشكل صحيح.

وحدة تحكم لينكس توضيحية تعرض رسالة إيقاف تشغيل خدمة كمثال وعد تنازلي
تُشير رسالة وحدة التحكم النموذجية إلى الوحدة التي ينتظرها نظام systemd؛ والخدمة المعروضة والعد التنازلي هما لأغراض التوضيح فقط.

راقب النظام عبر وحدة تحكم عن بُعد أو منفذ تسلسلي، أو أي طرفية متاحة أخرى. تجنب استخدام أوامر إعادة الضبط أو الطاقة أثناء عمليات الكتابة. إذا توقف النظام عن الاستجابة، سجّل آخر سطر مرئي، ثم تابع بعد إعادة تشغيله.

2. ابحث عن الوحدة التي تنتظر

الخطوة الثانية: فحص مهام systemd للتأكد من أن الجهاز لا يزال يقبل الأوامر

إذا كان SSH أو طرفية ثانية لا يزال يعمل، فاسأل systemd عن المهام التي تعمل أو تنتظر، ثم تحقق من الوحدة المسماة على الشاشة:

sudo systemctl list-jobs
sudo systemctl status SERVICE.service
مثال توضيحي لمخرجات الطرفية من الأمر systemctl list-jobs مع إيقاف مهمة على سبيل المثال، خدمة قيد التشغيل.
يمكن لقائمة المهام تحديد خدمة لا تزال عملية إيقافها قيد التشغيل؛ والصف الموضح هو مثال على ذلك.

استبدل SERVICEباسم الوحدة الفعلي. تُضيّق مهمة الإيقاف الجارية نطاق البحث، لكنها لا تُفسّر سبب عدم انتهاء العملية. اقرأ حالتها وسجلاتها قبل تغيير الإعدادات. إذا لم يعد systemd يستجيب، فلا تُلغِ المهام بشكل عشوائي؛ بل افحص السجل السابق بعد عودة المضيف.

3. استخدم عملية إعادة التشغيل السابقة لتحديد السبب

الخطوة 3: اقرأ نهاية سجل الحذاء السابق

السجل هو سجل مفهرس لرسائل النواة والخدمات والنظام في نظام systemd. بعد بدء التشغيل الناجح التالي، اعرض قائمة عمليات بدء التشغيل المسجلة وافحص نهاية عملية بدء التشغيل السابقة.

sudo journalctl --list-boots
sudo journalctl -b -1 -e
طرفية توضيحية تُشغّل الأمر journalctl boot-list وتُظهر نهاية رسائل إيقاف التشغيل السابقة
يحدد الإزاحة -1عملية التمهيد السابقة، -eوينتقل إلى أحدث إدخالاتها.

ابحث عن آخر رسالة "إيقاف"، أو رسالة انتهاء المهلة، أو عدد المحاولات، أو اسم الجهاز أو نقطة التثبيت. السطر الأخير مجرد دليل: قد يؤدي إيقاف التشغيل إلى ترك وحدة أخرى تنتظر. قارن الطوابع الزمنية والرسائل المجاورة.

الخطوة الرابعة: تصفية السجلات للخدمة المشتبه بها

عندما تُشير الشاشة أو السجل إلى خدمة ما، استعلم فقط عن إدخالات التمهيد السابقة لتلك الوحدة. راجع أيضًا التكوين المُحمّل الخاص بها:

sudo journalctl -b -1 -u SERVICE.service --no-pager
sudo systemctl cat SERVICE.service
مثال توضيحي لتصفية طرفية لسجل بدء التشغيل السابق، على سبيل المثال، رسائل إيقاف الخدمة.
يساعد التصفية حسب الوحدة في التمييز بين إيقاف تشغيل الخدمة البطيء والرسائل غير ذات الصلة في أماكن أخرى من السجل.

تحقق من وجود أي خطأ مخصص ExecStop، أو برنامج نصي ينتظر إلى أجل غير مسمى، أو عملية فرعية عالقة، أو خطأ في التطبيق عند إيقاف تشغيله. بالنسبة لوحدات البائع، قارن الحزمة والتكوين مع الإرشادات المدعومة قبل التعديل.

الخطوة 5: تحقق من أماكن التثبيت والتخزين فقط عندما تشير الأدلة إلى ذلك

إذا كان سجل النظام يشير إلى وحدة تخزين أو جهاز أو نظام ملفات بعيد، فافحص جدول وحدات التخزين والإدخال المطابق في /etc/fstab:

sudo findmnt --verify --verbose
مثال توضيحي لمحطة طرفية تقوم بتشغيل التحقق من findmnt لمراجعة إدخالات وخيارات التثبيت
استخدم التحقق من التثبيت عندما تشير السجلات إلى وجود تثبيت؛ الإدخالات المعروضة توضيحية ويجب التحقق منها مقابل المضيف.

تحقق من إمكانية الوصول إلى أي اتصال بعيد، سواء كان NFS أو CIFS أو iSCSI أو غيره، أثناء إيقاف التشغيل. لا تقم بإزالة أي إدخال ربط قديم إلا بعد التأكد من عدم استخدامه. لا تقم بإلغاء ربط نظام ملفات قيد التشغيل قسرًا بناءً على إعادة تشغيل بطيئة فقط.

4. عالج السبب دون إخفائه

الخطوة 6: إصلاح الخدمة أو تعديل سياسة الإيقاف الموثقة الخاصة بها فقط

بالنسبة للخدمة التي لا تتوقف، قم أولاً بإصلاح برنامج إيقاف التشغيل، أو إعدادات التطبيق، أو مشكلة الحزمة. sudo systemctl edit SERVICE.serviceيتم تخزين ملف التثبيت لكل وحدة في مجلد معين /etc/systemd/system/دون الحاجة إلى تعديل ملف المورّد. TimeoutSecتستخدم وثائق SUSE لبدء الخدمة أو إيقافها قيمة معتمدة من المورّد لهذا النوع من العمل.

محرر خدمة systemd توضيحي يُظهر قسم الخدمة وملاحظة لاستخدام مهلة زمنية معتمدة من المورّد
يمكن أن تحتوي وحدة الإدخال على تجاوز مستهدف؛ الملاحظة المعروضة هي مجرد توجيه، وليست قيمة مهلة زمنية.

بعد إجراء تعديل موثق، أعد تحميل تعريفات وحدات systemd باستخدام الأمر المناسب sudo systemctl daemon-reload، ثم افحص النتيجة باستخدام الأمر المناسب sudo systemctl cat SERVICE.service. قد يسمح مهلة زمنية أطول بإتمام عملية إيقاف التشغيل بشكل صحيح، ولكنها قد تُطيل أيضًا عملية إعادة التشغيل الفاشلة. أما المهلة الأقصر فقد تُنهي خدمةً قبل أن تُفرغ حالتها. لا تُغير الإعدادات الافتراضية العامة لإخفاء عيب في وحدة واحدة.

الخطوة 7: الاحتفاظ بالسجلات للحادث التالي

يخزن نظام SLES بيانات السجل في مجلد /run/log/journal/افتراضيًا، ويتم مسح هذا المجلد المؤقت عند إعادة التشغيل. إذا journalctl -b -1لم يكن يحتوي على أي إدخالات من عمليات التشغيل السابقة، فقم بتمكين تخزين السجل الدائم لأغراض التشخيص المستقبلية.

sudo mkdir -p /var/log/journal
sudo systemd-tmpfiles --create --prefix=/var/log/journal
sudo journalctl --flush
مثال توضيحي لمحطة طرفية تقوم بإنشاء دليل سجلات دائم، وتعيين أذوناته، وتفريغ السجلات.
تحافظ هذه الأوامر على إدخالات السجل الجديدة عبر عمليات إعادة التشغيل؛ ولا يمكنها استعادة السجلات المفقودة بالفعل من وحدة التخزين المتطايرة.

تستخدم السجلات الدائمة مساحةً ضمن نظام الملفات /var؛ وتشير SUSE إلى أن السجل قد يستخدم ما يصل إلى 10% من هذا النظام افتراضيًا. تحقق من المساحة الحرة وفترة الاحتفاظ، خاصةً على /varوحدات التخزين الصغيرة.

5. تحقق من إعادة التشغيل المخطط لها التالية

الخطوة 8: تأكد من اكتمال عملية الإيقاف وعودة الخادم إلى الخدمة

بمجرد تصحيح السبب المشتبه به، قم بجدولة إعادة تشغيل مُتحكم بها مع إتاحة الوصول إلى وحدة التحكم. بعد عودة الجهاز، افحص الرسائل النهائية لعملية التشغيل السابقة وتحقق من الحالة الحالية للخدمة.

sudo journalctl -b -1 -e
sudo systemctl status SERVICE.service
طرفية توضيحية تُظهر مثالًا مكتملًا لإيقاف الخدمة في عملية التمهيد السابقة وفحص حالة الخدمة الحالية
بعد إعادة التشغيل لاحقًا، تحقق من أن عملية الإغلاق السابقة قد وصلت إلى رسائلها النهائية وأن الخدمة تعمل بشكل سليم مرة أخرى؛ هذه مجرد مثال توضيحي، وليست دليلًا للاختبار.

تُحل المشكلة عند إيقاف تشغيل الخادم دون انتظار على نفس الوحدة، ثم إعادة تشغيله بشكل طبيعي، ونجاح الخدمة أو عملية الربط. إذا توقفت السجلات فجأة أو أظهرت أخطاءً في النواة أو وحدة التحكم أو الأجهزة، فاحتفظ بها وتحقق من الأمر مع SUSE أو مُصنِّع الأجهزة بدلاً من ضبط مهلة الاستجابة.

للحصول على تفاصيل الأوامر، راجع دليل SLES 15 SP7 systemd ودليل SUSE للسجلات الدائمة وفلاتر journalctl . تُحدد هذه الخطوات العوامل المُحتملة المُسببة للمشكلة؛ ويعتمد الحل الصحيح، سواءً كان متعلقًا بالخدمة أو نظام الملفات أو الأجهزة، على الوحدة المُشار إليها في سجلات الجهاز نفسه.

اترك تعليقاً

تشخيص خادم SUSE الذي يتوقف عند شاشة إيقاف تشغيل systemd

تشخيص خادم SUSE الذي يتوقف عند شاشة إيقاف تشغيل systemd

استخدم وظائف systemd وسجل التمهيد السابق لتحديد موقع خدمة بطيئة أو عملية تحميل أو تبعية تخزين، ثم قم بتصحيحها دون إخفاء السبب.

افتح فقط حركة مرور الويب التي يحتاجها خادم SLES 15 الخاص بك

افتح فقط حركة مرور الويب التي يحتاجها خادم SLES 15 الخاص بك

استخدم firewall-cmd لفحص المنطقة النشطة، والسماح بـ HTTP بأمان، والحفاظ على الوصول إلى SSH، والتحقق من أن القاعدة تبقى بعد إعادة التحميل على SLES 15.

تشخيص أعطال تسجيل الدخول إلى SLES PAM دون فقدان الوصول إلى حسابك

تشخيص أعطال تسجيل الدخول إلى SLES PAM دون فقدان الوصول إلى حسابك

تتبع فشل PAM إلى الخدمة أو سياسة الحساب أو موفر الهوية، ثم قم بإصلاح تكوين SLES الصحيح مع الحفاظ على جلسة مسؤول عاملة.

أتمتة عمليات النسخ الاحتياطي المتسقة لـ Nextcloud باستخدام Restic و Cron

أتمتة عمليات النسخ الاحتياطي المتسقة لـ Nextcloud باستخدام Restic و Cron

قم بعمل نسخ احتياطية لملفات Nextcloud و MariaDB معًا، وجدول لقطات Restic المشفرة باستخدام cron، وتحقق من الاستعادة دون المخاطرة بالخادم المباشر.

تشغيل خادم أوبونتو في وضع الطوارئ: دليل إنقاذ خطوة بخطوة

تشغيل خادم أوبونتو في وضع الطوارئ: دليل إنقاذ خطوة بخطوة

قم بتشخيص وضع الطوارئ في خادم أوبونتو بأمان. اقرأ سجلات بدء التشغيل، وتحقق من مجلدات الجذر و fstab، وأصلح الوحدة المعطلة، وتعامل مع أخطاء نظام الملفات، وتحقق من إعادة التشغيل النظيفة.

نسخ احتياطي واستعادة صندوق بريد Zimbra CE باستخدام ملفات TGZ

نسخ احتياطي واستعادة صندوق بريد Zimbra CE باستخدام ملفات TGZ

قم بتصدير صندوق بريد فردي من إصدار Zimbra Community Edition، وتحقق من صحة نسخة TGZ الاحتياطية الخاصة به، واستعد العناصر المفقودة دون الكتابة فوق البريد الموجود.

السماح للمستخدمين المعتمدين بإنشاء غرف Jitsi باستخدام تسجيل الدخول عبر Keycloak

السماح للمستخدمين المعتمدين بإنشاء غرف Jitsi باستخدام تسجيل الدخول عبر Keycloak

السماح فقط للحسابات المعتمدة ببدء غرف Jitsi Meet باستخدام Keycloak ومصادقة الرمز المميز، مع إبقاء إمكانية انضمام الضيوف متاحة عند الحاجة.

مزامنة مستخدمي Active Directory مع ONLYOFFICE DocSpace عبر LDAP

مزامنة مستخدمي Active Directory مع ONLYOFFICE DocSpace عبر LDAP

قم بتوصيل ONLYOFFICE DocSpace بـ Active Directory أو OpenLDAP، واستورد المستخدمين والمجموعات بأمان، وقم بتعيين حقول الحساب، وجدول مزامنة موثوقة.

إضافة الخطوط إلى خادم مستندات ONLYOFFICE: دوكر مقابل لينكس

إضافة الخطوط إلى خادم مستندات ONLYOFFICE: دوكر مقابل لينكس

قم بتثبيت الخطوط المخصصة في خادم مستندات ONLYOFFICE، وقارن عمليات تحميل Docker الدائمة مع النسخ المباشرة، وأعد بناء قائمة الخطوط، وتحقق من النتيجة.

دبيان 12 على خادم افتراضي خاص ذي ذاكرة وصول عشوائي منخفضة: كيفية تقليل أعطال نفاد الذاكرة في MySQL

دبيان 12 على خادم افتراضي خاص ذي ذاكرة وصول عشوائي منخفضة: كيفية تقليل أعطال نفاد الذاكرة في MySQL

تشخيص عمليات إيقاف MySQL بسبب نفاد الذاكرة على Debian 12، والتحقق من حدود ذاكرة VPS، وتكوين التبديل، وضبط ذاكرة قاعدة البيانات والتزامن دون تقديم حل شامل.