systemd في Linux: إدارة الخدمات باستخدام systemctl

بعد فهم العمليات، تحتاج الآن لفهم كيف Linux يدير الخدمات بطريقة مركزية. هنا يأتي دور systemd.

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

ما هو systemd في Linux؟

  • نظام init حديث يدير الإقلاع والخدمات
  • يشغل الخدمات بالتوازي لتسريع الإقلاع
  • يوفر أدوات موحدة مثل systemctl وjournalctl

ما هي Unit في systemd؟

في systemd، كل مورد يُدار كـ Unit مثل:

  • .service للخدمات
  • .socket للسوكيت
  • .target لأهداف الإقلاع
  • .timer للمهام المجدولة

الأمر systemctl: أداة التحكم الأساسية

systemctl status ssh
sudo systemctl start ssh
sudo systemctl stop ssh
sudo systemctl restart ssh
sudo systemctl reload ssh

استخدم status أولاً لفهم حالة الخدمة قبل أي إجراء.

الفرق بين start وenable

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl disable nginx
الأمر وظيفته
start تشغيل الخدمة الآن
enable تشغيل الخدمة تلقائيا عند الإقلاع
disable إيقاف التشغيل التلقائي عند الإقلاع

التحقق من الخدمات النشطة والمعطلة

systemctl list-units --type=service
systemctl list-unit-files --type=service

الأول يعرض حالة التشغيل الحالية، والثاني يعرض حالة التمكين (enabled/disabled).

الأمر journalctl: قراءة سجلات systemd

journalctl -u nginx
journalctl -u nginx -n 50
journalctl -u nginx -f
  • -u: تحديد الخدمة
  • -n 50: آخر 50 سطر
  • -f: متابعة مباشرة للسجلات
نصيحة عملية: عند فشل خدمة، ابدأ بـ systemctl status ثم انتقل مباشرة إلى journalctl -u.

إعادة تحميل إعدادات systemd

عندما تعدل ملف Unit جديد أو تغيّر إعدادًا، نفذ:

sudo systemctl daemon-reload

ثم أعد تشغيل الخدمة المطلوبة.

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

  • تشغيل الخدمة بدون enable ثم توقع عملها بعد إعادة التشغيل
  • نسيان daemon-reload بعد تعديل ملفات Unit
  • عدم فحص السجلات قبل إعادة المحاولة

تمرين عملي: إدارة خدمة باستخدام systemctl

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

إذا تمكنت من قراءة الحالة والسجلات بعد إعادة التشغيل، فقد فهمت أساس التعامل مع systemd.

FAQ: أسئلة شائعة حول systemd وsystemctl

ما هو systemd في Linux؟

systemd هو نظام init ومدير خدمات في Linux مسؤول عن تشغيل النظام وإدارة الخدمات أثناء الإقلاع وبعده.

ما الفرق بين start وenable في systemctl؟

start يشغل الخدمة الآن فقط، بينما enable يجعلها تعمل تلقائيا عند الإقلاع.

كيف أقرأ Logs خدمة معينة في Linux؟

استخدم journalctl -u service_name لعرض سجلات الخدمة، ويمكن إضافة -f للمتابعة المباشرة.

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

في الدرس القادم سنتعمق في إدارة الخدمات بشكل عملي عبر service-management.

التالي: إدارة الخدمات
المحرر الذكي

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

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

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

انضم الآن