الفصل 2.7 - الخدمات والعمليات الخلفية
أهداف التعلم
في نهاية هذا الفصل، ستكون قادرًا على:
- فهم خدمات وعمليات Linux الخلفية
- إدارة الخدمات باستخدام systemd
- إنشاء خدمات مخصصة
- فهم ملفات الوحدة systemd
ما هي الخدمة/العملية الخلفية؟
الخدمة (أو العملية الخلفية) هي برنامج يعمل في الخلفية، عادةً بدون واجهة مستخدم، لتوفير وظائف نظام أو شبكة.
أنواع الخدمات
خدمات النظام
خدمات أساسية لعمل النظام:
- sshd: خادم SSH
- systemd-logind: إدارة الجلسات
- NetworkManager: إدارة الشبكة
خدمات الشبكة
خدمات تستمع على الشبكة:
- apache2/nginx: خوادم ويب
- mysql/postgresql: قواعد بيانات
- bind9: خادم DNS
خدمات المستخدم
خدمات يتم تشغيلها بواسطة المستخدم:
- pulseaudio: صوت
- dbus: اتصال بين العمليات
الإدارة باستخدام systemd
أوامر systemctl
# عرض حالة الخدمة
systemctl status apache2
# بدء الخدمة
systemctl start apache2
# إيقاف الخدمة
systemctl stop apache2
# إعادة تشغيل الخدمة
systemctl restart apache2
# إعادة تحميل التكوين
systemctl reload apache2
# التفعيل عند بدء التشغيل
systemctl enable apache2
# التعطيل عند بدء التشغيل
systemctl disable apache2
# عرض جميع الخدمات
systemctl list-units --type=service
# عرض الخدمات النشطة
systemctl list-units --type=service --state=running
ملفات الوحدة
يتم تعريف الخدمات بواسطة ملفات الوحدة في /etc/systemd/system/ أو /lib/systemd/system/:
مثال على خدمة بسيطة:
[Unit]
Description=خدمتي المخصصة
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/mon-service
Restart=always
User=monuser
[Install]
WantedBy=multi-user.target
الأقسام:
- [Unit]: البيانات الوصفية والاعتمادات
- [Service]: تكوين الخدمة
- [Install]: التثبيت والتفعيل
أنواع الخدمات
النوع البسيط
خدمة تبدأ وتبقى نشطة:
Type=simple
ExecStart=/usr/bin/mon-service
النوع المتشعب
خدمة تتشعب وينتهي الوالد:
Type=forking
ExecStart=/usr/bin/mon-service
PIDFile=/var/run/mon-service.pid
النوع الفوري
خدمة تعمل مرة واحدة وتنتهي:
Type=oneshot
ExecStart=/usr/bin/script-init
RemainAfterExit=yes
الاعتمادات
يمكن أن تكون للخدمات اعتمادات:
[Unit]
Description=خدمة ويب
After=network.target mysql.service
Requires=mysql.service
Wants=redis.service
التوجيهات:
- After: يبدأ بعد هذه الخدمات
- Before: يبدأ قبل هذه الخدمات
- Requires: اعتماد إلزامي
- Wants: اعتماد اختياري
ملخص
في هذا الفصل، تعلمت:
الخدمات/العمليات الخلفية: برامج تعمل في الخلفية
systemd: مدير خدمات حديث
systemctl: أوامر الإدارة
ملفات الوحدة: تكوين الخدمات
الاعتمادات: After, Before, Requires, Wants
الأنواع: simple, forking, oneshot
الخطوات التالية
الفصل 2.8: مستويات التشغيل
الفصل 2.9: عملية الإقلاع
تم إنشاء الفصل في: ديسمبر 2024