ملف خدمة Systemd

Mlf Khdmt Systemd



في Linux، يُظهر إخراج حالة systemctl أنه تم تحميل الخدمة من خلال ملف يسمى ملف الخدمة. يمكن الوصول إلى هذه الملفات في /lib/systemd/system أو /etc/systemd/system الدلائل.

ملفات الخدمة لديها .خدمة ملحقات وتحتوي على الإرشادات المطلوبة بواسطة systemd لإدارة الخدمة.







ال systemd يقوم نظام init بإدارة تهيئة النظام باستخدام ملف وحدة . الوحدة هي كائن يقوم بتنفيذ مهمة أو إجراء، مثل إدارة الخدمة، والتي تتضمن التحكم فيها ومراقبتها. هذه الوحدات هي في الأساس ملفات تسمى ملفات الخدمة والتي تتضمن تبعيات الوحدة والأوامر. تعتبر هذه الملفات ضرورية للتحكم بكفاءة في العمليات الخلفية وإدارة الموارد.



سأقوم في الدليل باستكشاف ملف خدمة systemd وبنيته والتوجيهات الرئيسية التي تتحكم في الخدمة.



عند العمل مع systemd، يجب استخدام الشروط ملف خدمة النظام و ملف وحدة النظام غالبًا ما يتم استخدامها بالتبادل لأنها من الناحية الفنية تشير إلى نفس الشيء.





ما هو ملف خدمة Systemd

في Linux، يدير النظام الخدمات باستخدام ملفات الخدمة التي تحتوي على تعليمات التكوين حتى يتمكن النظام من فهمها وتنفيذها.

لسرد الوحدات، استخدم systemctl مع -وحدات القائمة يأمر.



systemctl --list-units

لقراءة ملف الخدمة الخاص بأي خدمة، استخدم ملف قطة الأمر مع مسار الملف.

قطة [ / مسار ملف الخدمة ]

على سبيل المثال، لرؤية ملف الخدمة الخاص بـ ssh.service استخدم الأمر المحدد.

قطة / ليب / systemd / نظام / ssh.service

تشريح ملف خدمة Systemd

بشكل عام، تحتوي ملفات وحدة خدمة systemd على ثلاثة أقسام.

  • وحدة
  • خدمة
  • ثَبَّتَ

سيحتوي ملف الوحدة الخاص بالخدمة على قسم محدد يسمى خدمة قسم.

لاحظ أن الخدمة هي مجرد نوع من الوحدات. يمكن أن تحتوي الوحدة على أنواع مختلفة مثل المقبس، والجهاز، والتركيب، والتركيب التلقائي، والمبادلة، والهدف، والمؤقت، والشريحة، والنطاق. يتم وضع هذه الأقسام بين قسمي الوحدة والتثبيت. سيتم أيضًا استبدال امتداد الملف بنوع الوحدة المعني، على سبيل المثال، سيكون لنوع وحدة المقبس الامتداد .قابس كهرباء امتداد الملف.

ملحوظة: في هذا الدليل، سأركز على نوع وحدة الخدمة نظرًا لاستخدامها على نطاق واسع من قبل المسؤولين والمطورين.

هذه الأقسام محاطة بين قوسين مربعين ([]). يحتوي كل قسم على مجموعة التعليمات ذات الصلة. ويرد أدناه الهيكل العام لملف الخدمة.

[ وحدة ]

التوجيه1 =التعليمات 1

التوجيه2 =التعليمات 2

[ خدمة ]

التوجيه1 =التعليمات 1

التوجيه2 =التعليمات 2

[ ثَبَّتَ ]

التوجيه1 =التعليمات 1

التوجيه2 =التعليمات 2

يمكن تغيير ترتيب الأقسام. ومع ذلك، يتم اتباع الترتيب المذكور أعلاه بشكل عام.

[الوحدة] القسم

يحتوي قسم الوحدة على وصف الوحدة وتبعيات الوحدة. يتم وضع هذا القسم، حسب التقليد، في أعلى ملف الخدمة. يتم سرد التوجيهات شائعة الاستخدام أدناه:

التوجيه وصف
وصف يستخدم هذا التوجيه لذكر اسم الخدمة. يجب ألا يتجاوز طول الوصف 80 حرفًا.
توثيق يحتوي هذا التوجيه على صفحة الدليل أو عنوان URL الخاص بالخدمة.
يتطلب يُستخدم هذا التوجيه للإشارة إلى التبعية للخدمة الحالية. إذا لم يتم تنفيذ تنشيط خدمة التبعية هذه، فلن يتم بدء الخدمة الحالية.
يريد يُستخدم هذا التوجيه للإشارة إلى التبعية للخدمة الحالية. ومع ذلك، لا يلزم تنشيط خدمة التبعية هذه لتشغيل الخدمة الحالية.
قبل بعد تفعيل الوحدة الحالية، سيتم بدء الخدمة المذكورة في هذا التوجيه.
بعد قبل تفعيل الوحدة الحالية، سيتم تشغيل الخدمة المذكورة في هذا التوجيه.
يربط يربط هذا التوجيه الخدمة الحالية بالخدمة المذكورة. إذا تمت إعادة تشغيل الخدمة المرتبطة، فسيتم إعادة تشغيل الخدمات الحالية أيضًا.

وبصرف النظر عن هذه التوجيهات، هناك توجيهان آخران؛ حالة و يجزم. تتطلب العديد من الخدمات شروط نظام محددة للتشغيل بنجاح، ويتم استخدام هذه التوجيهات لذكر الشروط.

[تثبيت] القسم

هذا القسم ليس إلزاميًا وهو ضروري فقط عندما تتطلب الخدمة التنشيط أو إلغاء التنشيط عند التمهيد. علاوة على ذلك، يجب أيضًا ذكر خدمة الاسم المستعار. يتم سرد التوجيهات شائعة الاستخدام لقسم التثبيت أدناه:

التوجيه وصف
مطلوب من قبل يحدد هذا التوجيه مستوى التشغيل * الهدف من الخدمة. إذا تم تعيين الهدف ل multi-user.target ثم سيتم تمكين الخدمة على مستوى التشغيل هذا.
مطلوب من قبل يشبه هذا التوجيه WantedBy، ومع ذلك، حتى بدون التبعية المذكورة في التوجيه، سيتم تمكين الخدمة.
الاسم المستعار يتم استخدام هذا التوجيه لتمكين الخدمة باسم آخر. يتم إنشاء رابط رمزي بهذا الاسم عند تمكين الخدمة.

في الغالب، multi-user.target مستعمل ك مطلوب من قبل معامل. ولكن ما هو multiuser.target؟

يمثل multi-user.target حالة النظام الجاهزة لقبول جلسات متعددة المستخدمين غير رسومية. إنها الحالة قبل إطلاق واجهة المستخدم الرسومية.

هناك مستويات تشغيل مختلفة للنظام، فلنتعرف على وظيفة مستويات التشغيل هذه.

في systemd، يتم تجميع الخدمات بناءً على مستويات التشغيل، والتي تسمى الأهداف . يحتوي كل مستوى تشغيل على ملف به .هدف التمديد في /etc/systemd/system الدليل. سيتم تشغيل الخدمة بناءً على حالة مستوى التشغيل.

تشغيل المستوى الأهداف ولاية ملفات
0 poweroff اغلاق وإيقاف الطاقة poweroff.target
1 ينقذ تبدأ قذيفة الإنقاذ Rescue.target
2,3,4 متعدد المستخدمين يبدأ تشغيل shell متعدد المستخدمين غير واجهة المستخدم الرسومية multi-user.target
5 رسومية ينشئ غلاف واجهة المستخدم الرسومية متعدد المستخدمين Graphical.target
6 اعادة التشغيل اغلاق إعادة تشغيل reboot.target

قسم [الخدمة]

يشتمل هذا القسم على إعدادات التكوين الخاصة بالخدمة. التكوين الأساسي لهذا القسم هو تحديد النوع والأوامر التي سيتم تنفيذها في بداية الخدمة. يكتب و إكسيكستارت هي التوجيهات الرئيسية المستخدمة لإعداد الخدمة.

يتم سرد أنواع مختلفة من الخدمة في الجدول التالي.

نوع الخدمة وصف
بسيط وهو النوع الافتراضي عندما لا يتم ذكر النوع أو اسم الناقل ويتم ذكر ExecStart فقط. يقوم Systemd بتنفيذ العملية الرئيسية أولاً ثم وحدات المتابعة.
شوكة يُستخدم هذا النوع للحفاظ على تشغيل الخدمة حتى في حالة إغلاق الخدمة الأصلية. إنه يتشعب عملية فرعية بعد إغلاق العملية الأصلية.
ضربة واحدة يقوم النظام بتنفيذ العملية الرئيسية أولاً، وعندما تخرج العملية الرئيسية ستبدأ وحدات المتابعة.
com.dbus تُستخدم الخدمة مع dbus للتواصل مع عملية أخرى على متن الناقل. في حالة ذكر اسم الحافلة، سيتم تفعيل العملية بعد الحصول على اسم الحافلة.
يخطر سيتم إخطار الخدمة عند بدء العملية. سينتقل النظام إلى وحدات المتابعة بعد إصدار الإخطار.
عاطل ويحتفظ بالخدمة حتى يتم إرسال جميع الوظائف النشطة؛ مفيدة في المقام الأول لتحسين إخراج وحدة التحكم.

التوجيهات شائعة الاستخدام في قسم الخدمة مذكورة أدناه:

التوجيه وصف
إكسيكستارت فهو يحتفظ بالمسار الكامل للأمر المطلوب تنفيذه لبدء العملية.
ExecStartPre فهو يحتفظ بالأوامر التي يجب تنفيذها قبل بدء العملية الرئيسية.
ExecStartPost فهو يحتفظ بالأوامر التي يجب تنفيذها بعد بدء العملية الرئيسية.
ExecReload يحتفظ بالأمر لإعادة تحميل تكوين الخدمة.
إعادة تشغيل لإعادة تشغيل الخدمة تلقائيًا في ظروف مثل حالة الفشل، أو النجاح، أو غير الطبيعي، أو الإجهاض، أو المراقبة.
إعادة تشغيل ثانية للاحتفاظ بعدد الثواني التي سيتم بعدها إعادة تشغيل الخدمة تلقائيًا.

ال إكسيكستارت هي إحدى التوجيهات المهمة المستخدمة في قسم الخدمة. أنه يحتوي على المسار الكامل للملف القابل للتنفيذ أن الخدمة سيتم تنفيذها عند الاستدعاء.

خاتمة

ملف خدمة systemd هو ملف تكوين تم تنظيمه باستخدام التوجيهات والأوامر بحيث يمكن إدارته بواسطة systemd. تحتوي هذه الملفات على تعليمات توضح كيفية إدارة الخدمة بواسطة systemd. تناولت في هذا الدليل كيفية الوصول إلى ملف خدمة systemd وأقسامه والتوجيهات التي تدير الخدمات. لمعرفة المزيد حول تعليمات ملف الخدمة، يرجى قراءة دليل التوثيق الرسمي الموجود هنا .