0Pricing
Linux Server Deployment & SSH Mastery · درس

إدارة خدمات النظام باستخدام systemd

تحكّم في البرامج طويلة التشغيل التي تشغّل خادم Linux باستخدام systemd: ابدأ الخدمات وأوقفها ومكّنها وافحصها، واقرأ سجلاتها باستخدام journalctl، وافهم كيفية اندراج الوحدات ضمن إدارة العمليات.

إدارة خدمات النظام باستخدام systemd درس مجاني في Linux Server Deployment & SSH Mastery على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Linux Server Deployment & SSH Mastery، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Linux Server Deployment & SSH Mastery 4 دروس في المجموع.

الخدمات مقابل العمليات العادية

لقد أدرت عمليات فردية ومهام مجدولة. لكن البرامج التي تشكّل الخادم — مثل خوادم الويب وقواعد البيانات وSSH — تعمل كـخدمات: وهي عفاريت تعمل في الخلفية، وينبغي أن تبدأ عند الإقلاع وأن تُعاد تشغيلها عند تعطلها.

في Linux الحديث، يدير الخدماتَ systemd، وهو مدير النظام والخدمات.

ما الذي يديره systemd

ينظّم systemd كل شيء في صورة وحدات. والنوع الأكثر شيوعًا هو وحدة .service، التي تصف كيفية تشغيل عفريت.

يُعد الأمر systemctl واجهتك الرئيسية لفحص هذه الوحدات والتحكم فيها.

systemctl --version

التحقق من حالة الخدمة

يعرض systemctl status ما إذا كانت الخدمة قيد التشغيل، ومعرّف العملية الرئيسية لها، وأحدث أسطر السجل، وما إذا كانت مفعّلة عند الإقلاع.

عادةً ما يكون هذا أول أمر تشغّله عند استكشاف مشكلة في خدمة.

systemctl status nginx

بدء الخدمات وإيقافها

يمكنك التحكم في حالة تشغيل الخدمة باستخدام start وstop وrestart. تسري هذه الأوامر فورًا، لكنها لا تغيّر سلوك الإقلاع.

استخدم reload عندما تدعم الخدمة إعادة قراءة إعداداتها دون قطع الاتصالات.

sudo systemctl start nginx
sudo systemctl restart nginx
sudo systemctl reload nginx
sudo systemctl stop nginx

تمكين الخدمات عند الإقلاع

يجعل enable الخدمة تبدأ تلقائيًا عند إقلاع الخادم، بينما يزيلها disable من الإقلاع. وهذا مستقل عن كونها قيد التشغيل حاليًا أم لا.

تتيح الراية --now المفيدة تمكين الخدمة وبدء تشغيلها في خطوة واحدة.

sudo systemctl enable nginx
sudo systemctl enable --now nginx
sudo systemctl disable nginx

سرد الخدمات

لمعرفة ما هو مثبّت وقيد التشغيل، اعرض ملفات الوحدات أو الوحدات النشطة.

  • list-units --type=service — الخدمات المحمّلة حاليًا
  • list-unit-files --type=service — جميع الخدمات المثبّتة وحالة تمكينها
systemctl list-units --type=service --state=running
systemctl list-unit-files --type=service

قراءة السجلات باستخدام journalctl

يلتقط systemd مخرجات الخدمات في السجل. استعلم عنه باستخدام journalctl.

  • -u nginx — هذه الخدمة فقط
  • -f — متابعة السجل مباشرة
  • -e — الانتقال إلى النهاية
sudo journalctl -u nginx -f
sudo journalctl -u ssh --since '1 hour ago'

بنية ملف الوحدة

تُعرَّف الخدمة بواسطة ملف وحدة، يوجد عادةً في /etc/systemd/system/ أو /lib/systemd/system/. ويتضمن ثلاثة أقسام رئيسية: [Unit] و[Service] و[Install].

يخبر السطر ExecStart systemd بالأمر الذي يجب تشغيله.

[Unit]
Description=My App
After=network.target

[Service]
ExecStart=/usr/bin/myapp --port 8080
Restart=on-failure

[Install]
WantedBy=multi-user.target

إنشاء خدمتك الخاصة

لتشغيل برنامجك الخاص كخدمة، ضع ملف وحدة في /etc/systemd/system/، ثم أعد تحميل systemd لكي يتعرف على الملف الجديد، وبعد ذلك فعّله وابدأ تشغيله.

يلزم تنفيذ daemon-reload بعد أي تغيير في ملف وحدة.

sudo nano /etc/systemd/system/myapp.service
sudo systemctl daemon-reload
sudo systemctl enable --now myapp

إعادة التشغيل تلقائيًا عند الفشل

من أفضل ميزات systemd الاسترداد التلقائي. يحدّد التوجيه Restart= أن يعيد تشغيل الخدمة المتعطلة.

  • Restart=on-failure — فقط بعد خروج برمز غير صفري
  • Restart=always — كلما توقفت
  • RestartSec=5 — الانتظار قبل إعادة المحاولة
[Service]
ExecStart=/usr/bin/myapp
Restart=always
RestartSec=5

أفضل الممارسات

أدِر الخدمات بثقة:

  • ميّز بين وقت التشغيل (start) والإقلاع (enable)
  • شغّل daemon-reload بعد تعديل ملفات الوحدات
  • استخدم journalctl -u لتصحيح الأخطاء بدلًا من ملفات السجل المتناثرة
  • أضف Restart=on-failure إلى التطبيقات المخصصة لتعزيز قدرتها على الصمود

تحقق سريع

اختبر معرفتك بـ systemd.

مراجعة

يمكنك الآن إدارة خدمات الخادم باستخدام systemd:

  • status وstart وstop وrestart وreload
  • enable/disable للتحكم في سلوك الإقلاع
  • journalctl -u لسجلات الخدمة
  • ملفات وحدات .service مخصصة تتضمن Restart= لتعزيز القدرة على الصمود

بهذا تكتمل مهاراتك في إدارة العمليات والمهام مع العفاريت طويلة التشغيل.

الأسئلة الشائعة

هل درس «إدارة خدمات النظام باستخدام systemd» مجاني؟

نعم — نص درس «إدارة خدمات النظام باستخدام systemd» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Linux Server Deployment & SSH Mastery، انتقل إلى CoddyKit PRO. تتضمن دورة Linux Server Deployment & SSH Mastery 4 دروس في المجموع.

ماذا ستتعلم في «إدارة خدمات النظام باستخدام systemd»؟

تحكّم في البرامج طويلة التشغيل التي تشغّل خادم Linux باستخدام systemd: ابدأ الخدمات وأوقفها ومكّنها وافحصها، واقرأ سجلاتها باستخدام journalctl، وافهم كيفية اندراج الوحدات ضمن إدارة العمليات. تتمرن على Linux Server Deployment & SSH Mastery مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Linux Server Deployment & SSH Mastery؟

لا تُشترط خبرة سابقة. Linux Server Deployment & SSH Mastery على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «إدارة خدمات النظام باستخدام systemd»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Linux Server Deployment & SSH Mastery هذا؟

نعم. كل درس في Linux Server Deployment & SSH Mastery يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إدارة المستخدمين والمجموعات
  2. مراقبة عمليات النظام
  3. المهام المجدولة باستخدام Cron
  4. إدارة خدمات النظام باستخدام systemd
← العودة إلى Linux Server Deployment & SSH Mastery