إدارة الخدمات في Linux: start وstop وrestart وenable

بعد مقدمة systemd، حان الوقت للتطبيق العملي اليومي: إدارة الخدمات في Linux.

هذه المهارة أساسية لكل من يعمل على سيرفرات أو تطبيقات Backend أو DevOps.

ما المقصود بالخدمة (Service) في Linux؟

  • برنامج يعمل في الخلفية مثل nginx أو ssh
  • يتم تشغيله وإدارته غالبا عبر systemd
  • قد يبدأ تلقائيا عند إقلاع النظام

فحص حالة الخدمة قبل أي إجراء

systemctl status nginx
systemctl status ssh

هذا الأمر يوضح إن كانت الخدمة active أو failed مع آخر سطور من السجل.

تشغيل وإيقاف وإعادة تشغيل الخدمات

sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx
الأمر الاستخدام
start تشغيل الخدمة الآن
stop إيقاف الخدمة الآن
restart إعادة تشغيل كاملة
reload تحميل الإعدادات بدون إعادة تشغيل كاملة (إن مدعوم)

إدارة التشغيل التلقائي عند الإقلاع

sudo systemctl enable nginx
sudo systemctl disable nginx
systemctl is-enabled nginx
  • enable: تفعيل التشغيل التلقائي مع الإقلاع
  • disable: إلغاء التشغيل التلقائي
  • is-enabled: التحقق من الحالة

التحقق من الخدمات الفاشلة بسرعة

systemctl --failed
systemctl list-units --type=service --state=running

هذا يفيد جدا في التشخيص السريع بعد تحديثات أو تغييرات إعداد.

تشخيص مشاكل الخدمات عبر journalctl

journalctl -u nginx -n 50
journalctl -u nginx -f
journalctl -xeu nginx
  • -n 50: آخر 50 سطر
  • -f: متابعة السجل مباشر
  • -xeu: عرض موسع لأخطاء الخدمة
قاعدة عملية: لا تكرر restart عدة مرات قبل قراءة status وjournalctl.

سيناريو عملي شائع: خدمة لا تعمل بعد تعديل config

  1. تحقق من حالة الخدمة: systemctl status
  2. راجع السجلات: journalctl -u service -n 50
  3. صحح ملف الإعداد
  4. أعد التحميل أو التشغيل: reload أو restart
  5. تحقق مجددا من الحالة

أخطاء شائعة في إدارة الخدمات

  • نسيان استخدام sudo عند تعديل الخدمة
  • الخلط بين reload وrestart
  • تفعيل enable بدون اختبار start/status
  • تجاهل logs والاعتماد على التخمين

تمرين عملي: إدارة خدمة ssh خطوة بخطوة

systemctl status ssh
sudo systemctl restart ssh
systemctl is-enabled ssh
journalctl -u ssh -n 20

إذا قرأت الحالة والسجل بعد restart بنجاح، فقد أتقنت دورة إدارة الخدمات الأساسية.

FAQ: أسئلة شائعة حول Service Management في Linux

كيف أشغل أو أوقف خدمة في Linux؟

استخدم systemctl start service_name لتشغيل الخدمة وsystemctl stop service_name لإيقافها.

ما الفرق بين restart وreload في systemctl؟

restart يعيد تشغيل الخدمة بالكامل، بينما reload يعيد تحميل الإعدادات بدون إيقاف كامل إذا كانت الخدمة تدعم ذلك.

كيف أعرف سبب فشل خدمة في Linux؟

ابدأ بـ systemctl status ثم استخدم journalctl -u service_name لعرض السجلات التفصيلية.

الخطوة التالية

في الدرس القادم سنتعلم جدولة المهام في Linux باستخدام cron وcrontab.

التالي: جدولة المهام
المحرر الذكي

اكتب الكود وشاهد النتيجة فوراً

جرب الآن مجاناً
قناة ديف عربي

تابع أحدث الدروس والتحديثات مباشرة على واتساب

انضم الآن