الفصل 2.6 - عملية Init و systemd
أهداف التعلم
في نهاية هذا الفصل، ستكون قادرًا على:
- فهم دور عملية init (PID 1)
- شرح كيفية إدارة systemd للخدمات
- فهم ملفات الوحدة systemd
- إدارة الخدمات باستخدام systemctl
ما هو systemd؟
systemd هو نظام التهيئة وإدارة الخدمات في معظم توزيعات لينكس الحديثة. يحل محل أنظمة init القديمة (SysV init).
أدوار systemd
1. العملية الأولى (PID 1)
systemd هو دائمًا العملية ذات PID 1:
- الأب لجميع العمليات
- يدير العمليات اليتيمة
- لا يمكن قتله بشكل طبيعي
2. إدارة الخدمات
systemd يبدأ، يوقف ويراقب الخدمات:
- بدء تلقائي عند الإقلاع
- إعادة التشغيل في حالة الفشل
- التبعيات بين الخدمات
- مراقبة الحالة
3. إدارة مستويات التشغيل
systemd يستخدم targets (ما يعادل runlevels):
multi-user.target: وضع الكونسولgraphical.target: وضع رسوميrescue.target: وضع الإنقاذpoweroff.target: إيقاف التشغيل
ملفات الوحدة
الخدمات في systemd تُعرف بواسطة ملفات الوحدة:
[Unit]
Description=خدمة ويب Apache
After=network.target
[Service]
Type=simple
ExecStart=/usr/sbin/apache2 -D FOREGROUND
Restart=always
[Install]
WantedBy=multi-user.target
أنواع ملفات الوحدة:
.service: خدمات.target: مستويات التشغيل.timer: مهام مجدولة (بديل لـ cron).mount: نقاط التركيب.socket: مقابس الشبكة
أوامر systemctl
إدارة الخدمات باستخدام systemctl:
# عرض حالة خدمة
systemctl status apache2
# بدء خدمة
systemctl start apache2
# إيقاف خدمة
systemctl stop apache2
# إعادة تشغيل خدمة
systemctl restart apache2
# تفعيل عند الإقلاع
systemctl enable apache2
# تعطيل عند الإقلاع
systemctl disable apache2
# عرض جميع الخدمات
systemctl list-units --type=service
سجل systemd
systemd يدير السجلات باستخدام journalctl:
# عرض سجلات خدمة
journalctl -u apache2
# سجلات في الوقت الحقيقي
journalctl -f
# سجلات منذ اليوم
journalctl --since today
# سجلات مع أولوية
journalctl -p err
ملخص
في هذا الفصل، تعلمت:
systemd: نظام تهيئة حديث، PID 1
الأدوار: إدارة الخدمات، العمليات، مستويات التشغيل
ملفات الوحدة: تكوين الخدمات
systemctl: أوامر الإدارة
journalctl: عرض السجلات
الخطوات التالية
الفصل 2.7: الخدمات والعمليات الخلفية
الفصل 2.8: مستويات التشغيل (Runlevels)
تم إنشاء الفصل في: ديسمبر 2024