إدارة الخدمات في 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: عرض موسع لأخطاء الخدمة
status وjournalctl.
سيناريو عملي شائع: خدمة لا تعمل بعد تعديل config
- تحقق من حالة الخدمة:
systemctl status - راجع السجلات:
journalctl -u service -n 50 - صحح ملف الإعداد
- أعد التحميل أو التشغيل:
reloadأوrestart - تحقق مجددا من الحالة
أخطاء شائعة في إدارة الخدمات
- نسيان استخدام
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.
التالي: جدولة المهام