انتقل إلى المحتوى الرئيسي

الفصل 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