كيفية إنشاء ملف خدمة في لينكس

Kyfyt Ansha Mlf Khdmt Fy Lynks



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

في هذا البرنامج التعليمي، سوف أتناول كيفية إنشاء ملف خدمة systemd على نظام Linux.







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

قبل المضي قدمًا، دعونا نفهم ما هو ملف خدمة systemd وكيف يتم إنشاؤه على Linux.



يحتوي ملف خدمة systemd على تعليمات تم تعيينها لـ systemd لإدارة الخدمة. يحتوي عادةً على ثلاثة أقسام:



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

ال وحدة يحتوي القسم على معلومات أساسية حول الخدمة مثل الوصف المختصر وصفحات التوثيق والمسار إلى التبعيات. ال ثَبَّتَ يعد القسم اختياريًا، ولكنه عادةً ما يتحكم في حالة النظام التي يجب تمكين الخدمة بها.





ال خدمة يقع القسم عادةً بين الوحدة وقسم التثبيت. يحتوي بشكل أساسي على نوع الخدمة ومسار الملفات التنفيذية التي هي في الأساس أوامر يتم تنفيذها عند استدعاء الخدمة بواسطة systemd.

إليك ما تبدو عليه بنية ملف الخدمة النموذجية.



[ وحدة ]

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

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



[ خدمة ]

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

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



[ ثَبَّتَ ]

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

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

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

ملف خدمة نموذجي لـ ssh.service ويرد أدناه.

كيفية إنشاء ملف الخدمة

لإنشاء خدمة systemd، من الضروري فهم التوجيهات الأساسية. في هذا الدليل، سأغطي التوجيهات الأساسية التي يمكن أن تساعدك في إنشاء ملف خدمة كامل الوظائف.

يتضمن إنشاء ملف خدمة عدة خطوات، فلنبدأ بإنشاء ملف البرنامج النصي.

ملحوظة: لمتابعة الطريقة المذكورة أدناه، يجب أن يكون لديك امتيازات الجذر.

1. إنشاء البرنامج النصي

تتضمن الخطوة الأولية إنشاء التعليمات البرمجية التي سيتم تنفيذها عندما تبدأ الخدمة عملها. في هذا البرنامج التعليمي، أقوم بإنشاء برنامج نصي bash لتخزين وقت تشغيل نظام Linux واستخدام الذاكرة.

لنقم بإنشاء برنامج نصي في الدليل الحالي باسم myscript.sh باستخدام محرر نانو.

sudo نانو myscript.sh

الآن قم بإضافة البرنامج النصي الموضح أدناه في الملف واحفظه بالضغط على السيطرة + س وثم و .

#!/بن/باش

صدى صوت '>>هذا هو وقت تشغيل نظامك<<' > بيت / نفسه / myfile.txt

مدة التشغيل >> بيت / نفسه / myfile.txt

صدى صوت '>>هذا هو استخدام الذاكرة لنظامك<<' >> / بيت / نفسه / myfile.txt

حر >> بيت / نفسه / myfile.txt

ينام 60

يحتوي البرنامج النصي على بضع سلاسل صدى و مدة التشغيل و حر الأوامر.

ال مدة التشغيل يتم استخدام الأمر على Linux لطباعة مدة تشغيل النظام، وعدد المستخدمين المتصلين بمتوسط ​​تحميل النظام لمدة 1 و5 و15 دقيقة.

ال حر يتم استخدام الأمر لطباعة استخدام ذاكرة النظام، في حين أن يتم استخدام العلم لطباعة الإخراج ميغابايت .

لحفظ المعلومات في ملف نصي، نستخدم عوامل تشغيل خاصة تسمى عوامل إعادة التوجيه. ال > يتم استخدام المشغل لإدراج نص في الملف النصي المذكور. ومع ذلك، إذا لم يكن الملف موجودًا بالفعل، فسيتم إنشاؤه. بينما ال >> يتم استخدام عامل التشغيل لإلحاق النص في الملف. ال ينام يتم استخدام الأمر للحفاظ على نشاط الخدمة لمدة لا تقل عن دقيقة واحدة.

الآن، اجعل البرنامج النصي قابلاً للتنفيذ من خلال منح الأذونات اللازمة.

sudo chmod +x myscript.sh

أصبح لدى البرنامج النصي الآن إذن التنفيذ، فلننتقل إلى القسم التالي.

ملحوظة: لجعل ملف الخدمة خاليًا من الأخطاء، استخدم المسار المطلق للملف في البرنامج النصي bash.

2. إنشاء ملف الخدمة

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

قرص مضغوط / إلخ / systemd / نظام

يمكنك إنشاء ملف الخدمة في أي دليل، ثم نقل هذا الملف لاحقًا إلى هذا الدليل.

أقوم بإنشاء ملف خدمة باستخدام myservice.service اسم.

sudo نانو myservice.service

الآن قم بإضافة الأسطر التالية إلى الملف.

[ وحدة ]

وصف =خدمتي

[ خدمة ]

يكتب =simple

إكسيكستارت = / سلة مهملات / سحق / بيت / نفسه / script.sh

إعادة تشغيل = عند الفشل

[ ثَبَّتَ ]

مطلوب من قبل =multi-user.target

لاحظ أن [الوحدة]، [الخدمة]، و [ثَبَّتَ] نكون حساسية الموضوع . لن يعمل ملف الخدمة إذا تم ذكر أي منها بشكل غير صحيح، مثل [UNIT]، أو [SERVICE].

تم تحديد اسم الخدمة كـ خدمتي في ال وصف توجيه من [وحدة] قسم.

ال يكتب الخدمة هي بسيط في ال [خدمة] القسم، وهو النوع الافتراضي. شوكة , ضربة واحدة , يخطر , com.dbus والخمول هي بعض الأنواع الأخرى.

إذا كنت تريد أن تجعل الخدمة خاصة بالمستخدم، فإن مستخدم يمكن أيضًا استخدام التوجيه مع اسم المستخدم الخاص بالمستخدم. سيؤدي استخدام هذا التوجيه إلى جعل إذن مستخدم الخدمة معتمدًا.

بينما ال إكسيكستارت يحتوي التوجيه على المسار الكامل للملف القابل للتنفيذ. في المثال أعلاه، ملف البرنامج النصي myscript.sh يتم تخزينها في /الصفحة الرئيسية/سام/ الدليل. يدير هذا التوجيه في الواقع ما يجب تنفيذه عند استدعاء الخدمة بواسطة systemd. إذا لم يتم تحديد المسار الكامل للأمر، فسيتم حله تلقائيًا لإصلاح المسارات المطلقة مثل /usr/local/bin , /سر/بن/، و /سلة مهملات . من الجيد تمامًا استخدام الاسم القابل للتنفيذ طالما أنه موجود في أدلة الأوامر القياسية، ومع ذلك، اذكر المسار المطلق بخلاف ذلك. لاحظ أنه يمكن أيضًا استخدام أوامر متعددة مفصولة بفاصلة منقوطة (;).

ال [ثَبَّتَ] القسم اختياري؛ ومع ذلك، فإنه يشير إلى كيفية تمكين الخدمة. ال مطلوب من قبل يأخذ التوجيه الملفات المستهدفة على مستوى التشغيل كمعلمات. أشارت الملفات المستهدفة المختلفة إلى مستويات تشغيل مختلفة للنظام مثل poweroff , ينقذ , متعدد المستخدمين , رسومية ، و اعادة التشغيل .

ال multi-user.target يعني أنه سيتم تمكين الخدمة عندما يكون النظام في حالة تسمح بجلسات غير رسومية متعددة المستخدمين.

3. تفعيل الخدمة

لتنشيط الخدمة، قم أولاً بإعادة تحميل تكوينات systemd باستخدام systemctl جدوى.

sudo إعادة تحميل البرنامج الخفي systemctl

بعد ذلك، قم بتفعيل الخدمة مرة أخرى باستخدام systemctl أمر مع يُمكَِن .

sudo systemctl يُمكَِن myservice.service

للتحقق، تحقق من حالة الخدمة باستخدام حالة النظام يأمر.

يتم تشغيل الخدمة بنجاح.

الآن، دعونا نقرأ الملف النصي myfile.txt الخدمة التي تم إنشاؤها في /بيت الدليل.

كيفية إنشاء ملف خدمة Systemd للمستخدم العادي

يشبه إجراء إنشاء ملف الخدمة لمستخدم عادي طريقة إنشاء ملف خدمة بواسطة المسؤول. ومع ذلك، يختلف الدليل لحفظ ملف الخدمة للمستخدمين العاديين. يجب على المستخدمين العاديين وضع ملفات الخدمة الخاصة بهم في ملف ~/.config/systemd/user . يجب إنشاء هذا الدليل باستخدام mkdir يأمر.

mkdir ~ / .config / systemd / مستخدم

لتفعيل الخدمة من قبل مستخدم عادي -مستخدم يتم إدراج الأمر مع systemctl بدلاً من sudo .

systemctl --مستخدم تحديث البرنامج الخفي

systemctl --مستخدم يُمكَِن SERVICE-NAME.service

systemctl --مستخدم حالة الخدمة-NAME.service

ال -مستخدم يتم استخدام الخيار لإدارة ملفات خدمة systemd الخاصة بالمستخدم.

كيفية إزالة ملف الخدمة

لإزالة ملف الخدمة، يجب أولاً إيقاف الخدمة.

sudo إيقاف systemctl SERVICE-NAME.service

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

sudo جمهورية مقدونيا / إلخ / systemd / نظام / SERVICE-NAME.service

الآن، قم بإعادة تحميل systemd إعدادات.

sudo إعادة تحميل البرنامج الخفي systemctl

خاتمة

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