Raspberry Pi هو SBC (كمبيوتر لوحة واحدة) قوي يمكنك استخدامه لمختلف التطبيقات والمشاريع. تكمن تعدد استخداماته في قدرته على تشغيل جميع أنواع البرامج ، بما في ذلك البرامج النصية المخصصة ، ويرجع الفضل في ذلك جزئيًا إلى نظام Raspberry Pi OS وأنظمة التشغيل الأخرى التي تعمل بنظام Linux.

يعد تشغيل برنامج نصي أو برنامج على Raspberry Pi أمرًا بسيطًا مثل العثور عليه على النظام وتنفيذه. ولكن ماذا لو كنت تريد أتمتة هذه العملية ، ربما لأن مشروعك يتطلب ذلك أو لأنك تريد تبسيط سير عملك؟

إجابة واحدة على هذا هو تعلم كيفية استخدام systemd.

ما هو سيستمد؟

systemd عبارة عن مجموعة من مكونات النظام لتكوين الخدمة والسلوك على أنظمة Linux الحديثة. تم تحديده بـ PID (معرف العملية) من 1 نظرًا لأنها أول عملية يتم التمهيد عند بدء تشغيل النظام. بشكل عام ، الغرض من systemd هو مساعدتك في إدارة البرامج وتنفيذها عند بدء تشغيل النظام. وهذا ما ستستفيد منه لإطلاق برنامجك عند بدء التشغيل على Pi.

كما ذكرنا في البداية ، هناك عدة طرق لتشغيل البرامج عند بدء التشغيل على أنظمة Linux ، مثل rc.local و cron و autostart. ومع ذلك ، يحدث systemd لحل أفضل للقطعة إذا كنت ترغب في تشغيل برامج GUI (واجهة المستخدم الرسومية) ، أتمتة التطبيقات ليتم تشغيلها بعد بدء عمليات نظام معينة ، أو تشغيل البرامج مرارًا وتكرارًا حتى جدولتك يعمل.

instagram viewer

متعلق ب: كيفية جدولة المهام في Linux باستخدام Cron و Crontab

كيفية استخدام systemd لبدء تشغيل البرامج عند بدء التشغيل

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

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

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

يوجد أدناه تفصيل للخطوات المتضمنة في تشغيل برنامج نصي / برنامج عند بدء التشغيل باستخدام systemd.

إنشاء خدمة

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

  1. في نافذة CLI ، اكتب sudo nano /lib/systemd/system/display.service. يمكنك استخدام أي اسم لخدمتك طالما أنه ينتهي بامتداد الخدمة.
  2. في ملف الخدمة ، الصق سطور التعليمات البرمجية التالية:
    [وحدة]
    الوصف = PiCounter
    بعد = network.target
    [خدمة]
    ExecStart = / usr / bin / python3 /home/pi/PiCounter/display.py
    إعادة التشغيل = دائما
    المستخدم = pi
    [تثبيت]
    WantedBy = multi-user.target

تندرج جميع خيارات التكوين الشائعة ضمن نطاق وحدة و تثبيت ، بينما تنتقل خيارات التكوين الخاصة بالخدمة ضمن قسم الخدمة.

تتضمن بعض أزواج قيمة التوجيه أعلاه التي قد تحتاج إلى تعديلها ما يلي:

أنا. بعد: يحدد متى تبدأ الخدمة. ضبطه على network.target يضمن أن القيمة المدرجة - هدف الشبكة في هذه الحالة - تبدأ قبل بدء الوحدة الحالية. ومع ذلك ، فإنه لا يوجه علاقة تبعية للخدمة لإطلاقها ؛ يتم ذلك من خلال توجيهات أخرى مثل Wants ، و Required ، و WantedBy.

بالطبع ، يمكنك تغيير هذه القيمة لتناسب متطلبات مشروعك. على سبيل المثال ، إذا كنت تريد أن يتم تنفيذ برنامجك بعد اتصال Raspberry Pi بشبكة ، فيمكنك استخدام ملف network-online.target القيمة. يمكنك الرجوع إلى توثيق فيدورا على systemd لمعرفة المزيد عن هذه القيم.

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

ثالثا. المستعمل: يحدد اسم Raspberry Pi الخاص بك. إذا قمت بتغيير اسم Pi الخاص بك ، فأنت بحاجة إلى وضع هذه القيمة للمستخدم.

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

علاوة على ذلك ، يعمل هذا أيضًا على تشغيل برنامجك قبل بدء تشغيل نظام Pi X-Windows ، مما يعني أن برنامجك يعمل حتى قبل تسجيل الدخول إلى النظام. في حالة رغبتك في تشغيل برنامج نصي قبل تسجيل الدخول إلى Raspberry Pi ، يتيح لك ذلك القيام بذلك.

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

[وحدة]
الوصف = PiCounter
بعد = network.target
[خدمة]
البيئة = العرض =: 0
البيئة = XAUTHORITY / home / pi / .Xauthority
ExecStart = / usr / bin / python3 /home/pi/PiCounter/display.py
إعادة التشغيل = دائما
[تثبيت]
WantedBy = multi-user.target

في زوج قيمة التوجيه أعلاه ، كل ما تحتاج إلى تغييره هو قيمة إكسيكستارت التوجيه. استبدل الكود في كودبلوك بالبرنامج الذي تريد تشغيله عند بدء التشغيل. بعد ملء ملف الخدمة ، اضغط على CTRL + O لحفظه.

اختبر الخدمة

عندما تكون الخدمة جاهزة ، تحقق يدويًا مما إذا كانت تعمل. لهذا ، اكتب الأمر التالي في المحطة: sudo systemctl بدء عرض الخدمة. يجب أن تنفذ الخدمة تعليماتك بنجاح.

بمجرد القيام بذلك ، قم بإنهائه بـ sudo systemctl stop display.service.

تمكين الخدمة

إذا تمكنت من تشغيل برنامجك بنجاح باستخدام الخدمة ، فقد حان الوقت لتمكينه بحيث ينفذ برنامجك تلقائيًا في كل مرة تقوم فيها بتشغيل Raspberry Pi.

للقيام بذلك ، اكتب يتيح sudo systemctl عرض الخدمة في نافذة المحطة. وبمجرد الانتهاء من ذلك ، أدخل sudo إعادة التشغيل لإعادة تشغيل Pi الخاص بك.

بمجرد بدء تشغيل Raspberry Pi ، يجب أن يقوم systemd بتشغيل البرنامج وفقًا للتعليمات المقدمة.

إطلاق برنامج التشغيل الآلي عند بدء التشغيل على Raspberry Pi

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

ومع ذلك ، إذا كنت تريد حلًا أبسط أو كانت متطلبات مشروعك تتطلب جدولة محددة ، فيمكنك مراجعة دليلنا إلى تشغيل برنامج Raspberry Pi أو البرنامج النصي عند بدء التشغيل لتعلم المزيد.

بريد إلكتروني
ورقة الغش لأوامر Raspberry Pi المطلقة

هل تريد الحصول على المزيد من Raspberry Pi الخاص بك؟ إليك الكثير من الأوامر المفيدة للتنقل في طرف Pi وبرمجة دبابيس GPIO الخاصة به.

اقرأ التالي

مواضيع ذات صلة
  • افعلها بنفسك
  • فطيرة التوت
عن المؤلف
ياش وات (8 مقالات منشورة)

ياش هو كاتب موظفين في MUO لـ DIY و Linux والبرمجة والأمن. قبل أن يجد شغفه بالكتابة ، كان يطور الويب و iOS. يمكنك أيضًا العثور على كتاباته على TechPP ، حيث يغطي قطاعات أخرى. بخلاف التكنولوجيا ، فهو يستمتع بالحديث عن علم الفلك ، والفورمولا 1 ، والساعات.

المزيد من Yash Wate

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

خطوة أخرى أيضا…!

يرجى تأكيد عنوان بريدك الإلكتروني في البريد الإلكتروني الذي أرسلناه لك للتو.

.