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.
التالي: إدارة الخدمات