- כיצד להפעיל סקריפטים ופקודות בהשעיה וחידוש לינוקס

כיצד להפעיל סקריפטים ופקודות בהשעיה וחדש ב- Linux

הדרך הטובה ביותר להריץ סקריפטים ופקודותלהשעות ולחדש ב- Linux לפני ההשעיה (או לאחר חידוש) היא להשתמש במערכת init. זה נובע מהעובדה שמערכת ה- init מתקשרת ישירות עם הגרעין ומערכות הכוח. לימוד לעבוד עם כלי זה יאפשר לכל משתמש להשיג שליטה רבה במערכת ההפעלה לינוקס שלו,

אנא הבינו את ההתעסקות עם ה- initמערכת במחשב האישי יכולה להיות מסוכנת אם אינך יודע מה אתה עושה. הקפד לעקוב אחר ההוראות במדריך זה ככל האפשר, כדי להימנע מתקלות אפשריות.

לא כל הפצה מודרנית של לינוקס תומכת ב-מערכת. חלקם משתמשים במעלה העליונה או במשהו אחר לחלוטין. במדריך זה נתמקד במערכת מכיוון שהיא מערכת החניכה הנפוצה ביותר. אם אתה מחפש לבצע משימה זו במשהו שאינו מנהל את מה שאנחנו מכסים במאמר זה, שקול לבדוק הוראות במערכת ההפעלה שלך.

הערה: על משתמשי Debian להחליף את כל המקרים של usr / lib / systemd / system-sleep עם / lib / systemd / system-sleep /

ניהול פיקוד לפני השעיה

כדי להריץ סקריפט לפני השעיה, מקם קובץ סקריפט bash בקובץ / usr / lib / systemd / system-sleep / ספרייה. התסריטים עצמם יכולים לעשות הכל, אך יש תחביר מסוים שיש להקפיד עליו. התחל בפתיחת חלון מסוף. בעזרת sudo, צבר מעטפת שורש.

בשלב הבא העלה את עורך הטקסט של ננו בתוך ספריית השינה של המערכת:

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

הוסף את השיבנג לתחילת הסקריפט. הוספת הדבר היא קריטית, ובלעדיה המתורגמן לא יוכל לקרוא נכון את הקוד והפקודות.

#!/bin/bash/

החלק הבא של התסריט הוא "אם". זה יגיד למערכת בקרת החשמל כי "אם" המערכת עומדת לרדת להשבתה, צריך לקרות משהו. הדבק את הקוד למטה:

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. אתה יכול גם להשתמש בזה כדי לבצע פקודות שונות. כל עוד bash יכול לזהות אותו כפקודה, הוא יפעל.

החלק האחרון של התסריט "לפני השעיה" הוא להוסיף את החלק "אחרת אם". אסור לשנות את היבט זה של התסריט, שכן בדוגמה זו אנו דואגים לעשות משהו לפני המערכת יורדת ולא כשהיא מתעוררת.

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

כאשר הכל נוסף לקובץ, לחץ על Ctrl + O להציל ננו.

ניהול פיקוד לאחר קורות חיים

ביצוע פקודה לאחר קורות חיים עובד כמומפעיל משהו לפני להשעות. ההבדל האמיתי היחיד הוא במקום להוסיף פקודה אחרי החלק "אם" של הסקריפט, תגרום לחלק החשוב ביותר של הקוד להופיע לאחר קו "elif".

כדי ליצור סקריפט לאחר קורות החיים, ראשית, הוסף את השיבנג כשורה ראשונה.

#!bin/bash

בשורה הבאה, הוסף את החלק "אם" של התסריט.

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

עם קצת קוד שהודבק בסקריפט הבש, הזז מטה והדבק את הקטע "אחר אם".

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

שוב, זה בסדר לכתוב כל דבר תחת קו "elif". כל עוד מדובר במערכת הפקודה הרגילה ו- bash ינהל אותה.

הפעלת פקודות בהפעלה וחידוש

אם תרצה להריץ שתי פקודות הפוכות; אחדלפני שתשהה, ואחד בקורות החיים, זה אפשרי. זה פשוט אומר להתאים אישית את הסקריפט ולהוסיף שורות בשורה 'אם', כמו גם בשורה "oarsif".

כרגיל, התחל על ידי פרסום השיבנג לתסריט למתורגמן.

#!/bin/bash

לאחר מכן הדבק את החלק אם בקוד.

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

תחת if, החלף את "# להחליף בפקודה" בכל פקודה שתרצה להפעיל ממש לפני שהמערכת תיפול. לאחר מכן, עברו לקטע "elif" ועשו את אותו הדבר.

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

שמור את הקובץ באמצעות Ctrl + O,

עדכון הרשאות ושימוש בתסריט

כל הפקודות הדרושות נמצאות בתוך קובץ הסקריפט, אך לפני שהוא יכול לפעול, יהיה עליכם לעדכן את ההרשאות. לפתוח מסוף ולהשתרש עם: su או sudo -s. ואז עשה:

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

מעתה והלאה, בכל פעם שתשהה או יחדש, פקודות מותאמות אישית בתוך הסקריפט צריכות להופיע.

הערה: יש לך שאלות לגבי מערכת שינה-מערכת? עיין במדריך עם man systemd-suspend.service.

הערות