إدارة الخدمات باستخدام systemd
ابدأ الخدمات وأوقفها وفعّلها
إدارة الخدمات باستخدام systemd درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
إدارة الخدمات طويلة التشغيل
تتحكم وحدة systemd في الخدمات التي يديرها systemd، وهو نظام التهيئة في معظم توزيعات Linux الحديثة. ويمكنكم استخدامها لبدء الخدمات وإيقافها وتمكينها.
بدء خدمة
حدّدوا اسم الخدمة واضبطوا state: started. تبدأ الوحدة الخدمة فقط إذا لم تكن قيد التشغيل، وتحافظ بذلك على خاصية idempotent.
ansible.builtin.systemd:
name: nginx
state: startedإيقاف خدمة
استخدموا state: stopped لإيقاف الخدمة. وكما هي الحال دائمًا، لا تتخذ الوحدة أي إجراء إلا إذا كانت الخدمة قيد التشغيل حاليًا.
ansible.builtin.systemd:
name: nginx
state: stoppedإعادة التشغيل وإعادة التحميل
تعيد state: restarted تشغيل الخدمة بالكامل، بينما تعيد reloaded قراءة الإعدادات من دون قطع الاتصالات. وتُعد إعادة التشغيل الخيار الآمن الافتراضي.
ansible.builtin.systemd:
name: nginx
state: restartedالبدء والتمكين مختلفان
تتحكم state في تشغيل الخدمة الآن. أما enabled فتتحكم في بدء تشغيلها تلقائيًا عند إقلاع النظام. وهما مستقلان عن بعضهما.
التمكين عند الإقلاع
اضبطوا enabled: true لكي تبدأ الخدمة تلقائيًا بعد إعادة التشغيل. ادمجوا ذلك مع started لتغطية الحالتين: الآن ولاحقًا.
ansible.builtin.systemd:
name: nginx
state: started
enabled: trueإعادة تحميل عفريت systemd
بعد إضافة ملف unit جديد، اضبطوا daemon_reload: true لكي يعيد systemd قراءة إعداداته قبل التعامل مع الوحدة.
ansible.builtin.systemd:
name: myapp
daemon_reload: trueتبقى Idempotent
عند طلب started لخدمة قيد التشغيل، تحصلون على ok وليس changed. تتحقق الوحدة من الحالة الحالية قبل تنفيذ أي إجراء.
مطلوب الوصول بصلاحيات الجذر
يتطلب التحكم في الخدمات امتيازات، لذا أضيفوا become: true. ومن دونه، يرفض systemd الطلب وتفشل المهمة.
- name: Enable nginx
become: true
ansible.builtin.systemd:
name: nginx
enabled: trueتوجد أيضًا وحدة service
تعمل وحدة service العامة عبر أنظمة التهيئة المختلفة. استخدموا systemd مباشرة عندما تحتاجون إلى خيارات خاصة به مثل daemon_reload.
تتوافق جيدًا مع Handlers
من الأنماط الشائعة إعادة تشغيل الخدمة فقط عند تغيّر إعداداتها. وتُشغّل Handlers، التي ستتعرفون إليها لاحقًا، عملية إعادة التشغيل عند حدوث التغيير.
اختبار سريع
تريدون تشغيل nginx الآن وكذلك بعد كل إعادة تشغيل.
مراجعة
تبدأ وحدة systemd الخدمات وتوقفها وتعيد تشغيلها وتمكّنها. تذكّروا أن state تعني الآن، بينما enabled تعني عند الإقلاع. ⚙️
الأسئلة الشائعة
هل درس «إدارة الخدمات باستخدام systemd» مجاني؟
نعم — نص درس «إدارة الخدمات باستخدام systemd» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «إدارة الخدمات باستخدام systemd»؟
ابدأ الخدمات وأوقفها وفعّلها تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «إدارة الخدمات باستخدام systemd»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- ما هي الوحدة فعليًا
- تثبيت الحزم باستخدام وحدة package
- إدارة الخدمات باستخدام systemd
- قراءة الوثائق باستخدام ansible-doc