- - كيفية تشغيل البرامج النصية والأوامر على تعليق واستئناف على لينكس

كيفية تشغيل البرامج النصية والأوامر على تعليق واستئناف على لينكس

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

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

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

ملاحظة: يجب على مستخدمي دبيان استبدال جميع مثيلات البيرة / ليب / سيستم دي / نظام النوم مع / ليب / سيستم دي / نظام النوم /

تشغيل أمر قبل التعليق

لتشغيل برنامج نصي قبل التعليق ، ضع أي ملف نصي للباش في / البيرة / ليب / سيستم دي / نظام النوم / الدليل. يمكن أن تفعل البرامج النصية نفسها أي شيء ، ولكن يوجد بناء جملة معين يجب الالتزام به. ابدأ بفتح نافذة طرفية. باستخدام sudo -s ، كسب قذيفة الجذر.

بعد ذلك ، قم بتحرير محرر نص nano داخل دليل نوم النظام:

nano /usr/lib/systemd/system-sleep/pre-suspend.sh

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

#!/bin/bash/

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

if [ "${1}" == "pre" ]; then
sh /path/to/script/to/run.sh

يتغيرون sh /path/to/script/to/run.sh في البرنامج النصي إلى أي شيء تريد تشغيله على جهاز كمبيوتر يعمل بنظام Linux (أو الخادم) قبل إيقاف النظام مؤقتًا للتعليق. ضع في اعتبارك أن السطر مباشرة بعد "إذا" لا يحتاج إلى أن يكون sh /path/to/script/to/run.sh. يمكنك أيضًا استخدام هذا لتنفيذ الأوامر المختلفة. طالما يمكن للباش التعرف عليه كأمر ، فسيتم تشغيله.

الجزء الأخير من البرنامج النصي "قبل التعليق" هو ​​إضافة الجزء "آخر إذا". لا يلزم تعديل هذا الجانب من النص ، حيث أننا في هذا المثال ، نشعر بالقلق إزاء القيام بشيء ما قبل ينهار النظام ، وليس عندما يستيقظ.

elif [ "${1}" == "post" ]; then
# nothing goes here
fi

عند إضافة كل شيء إلى الملف ، اضغط على Ctrl + O لانقاذ نانو.

تشغيل أمر بعد استئناف

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

لإنشاء برنامج نصي لما بعد الاستئناف ، أولاً ، قم بإضافة shebang باعتباره السطر الأول.

#!bin/bash

في السطر التالي ، أضف الجزء "if" من البرنامج النصي.

if [ "${1}" == "pre" ]; then
# nothing goes here

بعد لصق هذا الكود من التعليمات البرمجية في البرنامج النصي bash ، انزل لأسفل والصق قسم "else if".

elif [ "${1}" == "post" ]; then
sh /path/to/script/to/run.sh
fi

مرة أخرى ، لا بأس أن تكتب أي شيء تحت خط "elif". طالما أنه أمر تشغيل عادي systemd وسيعمل bash عليه.

تشغيل الأوامر عند بدء التشغيل والسيرة الذاتية

إذا كنت ترغب في تشغيل أمرين متقابلين ؛ واحدقبل تعليق واحد في السيرة الذاتية ، فمن الممكن. هذا يعني فقط تخصيص النص وإضافة خطوط أسفل كلٍّ من سطر "if" ، وكذلك سطر "elseif".

كالعادة ، إبدأ بنشر shebang في البرنامج النصي للمترجم الفوري.

#!/bin/bash

بعد ذلك ، الصق قسم if في الكود.

if [ "${1}" == "pre" ]; then
# replace with command

ضمن if ، استبدل "# replace with command" بأي أمر تريد تشغيله قبل إيقاف النظام. ثم ، انتقل إلى قسم "أليف" ، وتفعل الشيء نفسه.

elif [ "${1}" == "post" ]; then
#  replace with command
fi

احفظ الملف باستخدام Ctrl + O ،

تحديث الأذونات واستخدام البرنامج النصي

جميع الأوامر اللازمة موجودة داخل ملف البرنامج النصي ، ولكن قبل أن يتم تشغيله ، ستحتاج إلى تحديث الأذونات. فتح محطة ، واكتساب الجذر مع: su أو sudo-s. ثم افعل:

chmod +x /usr/lib/systemd/system-sleep/pre-suspend.sh

من الآن فصاعدًا ، كلما قمت بتعليق أو استئناف ، يجب تشغيل الأوامر المخصصة داخل البرنامج النصي.

ملاحظة: لديك أسئلة حول نظام SYSTEM النوم؟ تحقق من دليل مع رجل systemd ، تعليق. الخدمة.

تعليقات