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

Kyfyt Ansha Wadart Khdmat Almstkhdm Ly Lynks



يمكن للمستخدم العادي لنظام التشغيل Linux إنشاء خدمة systemd مخصصة. بينما تتم إدارة خدمات systemd إلى حد كبير بواسطة مسؤولي النظام باستخدام الأمر systemctl. ويمكن أيضًا استخدام نفس الأمر لإدارة الخدمات الخاصة بالمستخدم؛ كل ما تحتاجه هو أ -مستخدم علَم.

في هذا الدليل، سأغطي كيفية إنشاء خدمة خاصة بالمستخدم على Linux وكيفية إدارتها باستخدام systemctl.

سبب وجود خدمة مستخدم عادية

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







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

يتم وضع الخدمات الخاصة بالمستخدم على Linux في ملف ~/.config/systemd/user الدليل. إذا لم يكن هذا الدليل موجودا، فيمكن إنشاؤه.

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

ال يتم استخدام العلامة لإنشاء دليل أصل إذا لزم الأمر. ال ~ يشير إلى الدليل الرئيسي للمستخدم المحلي ويعادل /المستخدمين المنزليين بينما النقطة الموجودة قبل ملف التكوين تجعله مخفيًا. لنقم بإنشاء ملف نصي bash بسيط يكتب استخدام الذاكرة إلى نص كل 30 دقيقة. أقوم بإنشاء البرنامج النصي باسم script.sh .

#! /بن/باش

بينما حقيقي

يفعل

حر >> / بيت / مستخدم / myfile.txt

ينام 1800

منتهي

يمكن إنشاء هذا البرنامج النصي في أي مكان، ولكن تأكد من أن المسار المحدد داخل البرنامج النصي هو مسار مطلق.

لنقم الآن بإنشاء خدمة تقوم بتنفيذ البرنامج النصي أعلاه في الخلفية. قم بتشغيل أي محرر نصوص، مثل Nano أو Vim، والصق الأسطر الواردة أدناه فيه.

[ وحدة ]

وصف =خدمتي

[ خدمة ]

يكتب =simple

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

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

[ ثَبَّتَ ]

مطلوب من قبل =default.target

في قسم [الوحدة] وصف يحتوي التوجيه ببساطة على اسم الخدمة. لاحظ أنه يجب ألا يزيد عن 80 حرفًا.

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

يحتوي قسم [التثبيت] على مطلوب من قبل التوجيه الذي هو default.target ، مما يعني أنه سيتم تمكين الخدمة في حالة النظام عند الوصول إلى مستوى التشغيل الافتراضي، والذي يكون عادةً multi-user.target أو graphicsal.target.

الآن قم بحفظ الملف في ~/.config/systemd/user الدليل بأي اسم؛ أنا أسميها myservice.service .

كيفية إدارة خدمة المستخدم العادية

لإدارة خدمة المستخدم العادية، يتم استخدام الأمر systemctl مع الملف -مستخدم علَم. ال -مستخدم تشير العلامة إلى أن المستخدم يتصل بمدير الخدمة، بدلاً من النظام.

بعد إنشاء ملف الخدمة الخاص بالمستخدم، فإن الخطوة الحاسمة الأولى هي إعادة تحميل ملفات تكوين systemd.

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

سيؤدي هذا إلى تطبيق التغييرات.

لمعرفة ما إذا كانت الخدمة قيد التشغيل أم لا، استخدم systemctl، مع الأمر -مستخدم العلم والخيار.

systemctl --مستخدم حالة [ اسم الخدمة ]

الأوامر الأخرى لإدارة خدمة المستخدم العادية مذكورة أدناه:

systemctl --مستخدم يبدأ [ اسم الخدمة ]

systemctl --مستخدم يُمكَِن [ اسم الخدمة ]

systemctl --مستخدم قف [ اسم الخدمة ]

systemctl --مستخدم إبطال [ اسم الخدمة ]

systemctl --مستخدم إعادة تشغيل [ اسم الخدمة ]

كيفية إنشاء خدمة مستخدم عادية بأذونات مسؤول النظام

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

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

خاتمة

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