البرمجة

تهيئة خدمة systemd لإعادة المحاولة بفواصل زمنية

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

  1. قم بإنشاء ملف نصي جديد يحمل امتداد “.service” في مجلد “/etc/systemd/system/”، على سبيل المثال “myservice.service”.

  2. افتح هذا الملف باستخدام محرر نصوص مفضل لديك، مثل “nano” أو “vim”.

  3. ضع البيانات التالية داخل الملف:

makefile
[Unit] Description=My Custom Service After=network.target [Service] Type=simple Restart=on-failure RestartSec=30 ExecStart=/path/to/your/script.sh [Install] WantedBy=multi-user.target

يرجى استبدال “/path/to/your/script.sh” بالمسار الكامل للنص الذي ترغب في تشغيله.

  1. احفظ الملف وأغلق المحرر.

  2. بعد حفظ التغييرات، اطلب من systemd إعادة تحميل وحدات الخدمة للاعتراف بالتغييرات الجديدة:

sudo systemctl daemon-reload
  1. الآن، يمكنك تشغيل الخدمة باستخدام الأمر:
sql
sudo systemctl start myservice
  1. للتأكد من تشغيلها تلقائيًا عند بدء التشغيل، قم بتمكينها:
bash
sudo systemctl enable myservice

بهذا، سيبدأ systemd في تشغيل النص المحدد في ملف الوحدة بمجرد بدء التشغيل، وسيعيد تشغيله تلقائيًا إذا فشل، وذلك بعد فاصل زمني يبلغ 30 ثانية، وسيقوم بذلك لاكثر من 5 مرات كما هو مطلوب.

المزيد من المعلومات

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

تفسير الملف الوحدة:

  1. [Unit]:

    • في هذا القسم، يتم تحديد وصف الوحدة (Description) والوقت الذي يجب فيه تشغيل الوحدة بعد بدء النظام (After).
  2. [Service]:

    • تُعرف هنا خصائص الخدمة.
    • Type=simple: يشير إلى أن النص الذي سيتم تشغيله هو نص بسيط يبدأ وينتهي بشكل مباشر.
    • Restart=on-failure: يعيد تشغيل الخدمة في حالة فشلها.
    • RestartSec=30: يحدد الفاصل الزمني بين كل محاولة إعادة تشغيل، في هذه الحالة 30 ثانية.
    • ExecStart: يحدد المسار الكامل للنص الذي يجب تشغيله.
  3. [Install]:

    • يُحدد هنا المستوى الذي يجب أن تُثبت فيه الخدمة، مثل multi-user.target الذي يشير إلى أنها ستتم تثبيتها كجزء من النظام الذي يعمل بمستوى المستخدم المتعدد.

معلومات إضافية:

  • يمكنك تغيير قيمة RestartSec إلى أي قيمة تريدها، وهذا يحدد المدة الزمنية بين محاولات إعادة التشغيل.
  • يمكنك أيضًا تعديل قيمة Restart=on-failure إذا كنت ترغب في إعادة التشغيل في حالات مختلفة عن الفشل، مثل always لإعادة التشغيل دائمًا.
  • إذا كنت بحاجة إلى مزيد من المرونة في تكوينات systemd، يمكنك قراءة المزيد في الدليل الرسمي لـ systemd.

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر