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

click fraud protection

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

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

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

ملحوظة: يجب على مستخدمي دبيان استبدال كل نسخ usr / lib / systemd / system-sleep مع /lib/systemd/system-sleep/

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

لتشغيل سكريبت قبل الإيقاف المؤقت ، ضع أي ملف سكربت باش في  /usr/lib/systemd/system-sleep/

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

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

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

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

#! / بن / باش /

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

إذا ["$ {1}" == "pre"] ، ثم. sh /path/to/script/to/run.sh

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

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

elif ["$ {1}" == "post"] ؛ ثم. # لا شيء يذهب هنا. فاي

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

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

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

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

#! bin / باش

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

إذا ["$ {1}" == "pre"] ، ثم. # لا شيء يذهب هنا

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

elif ["$ {1}" == "post"] ؛ ثم. sh /path/to/script/to/run.sh. فاي

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

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

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

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

#! / بن / باش

بعد ذلك ، الصق قسم if من الرمز.

إذا ["$ {1}" == "pre"] ، ثم. # استبدال بالأمر

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

elif ["$ {1}" == "post"] ؛ ثم. # استبدال بالأمر. فاي

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

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

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

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

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

ملاحظة: هل لديك تساؤلات حول systemd system-sleep؟ تحقق من الدليل مع man systemd-suspend.service.

watch instagram story