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

How Run Linux Commands



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

יישומי הפעלה

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







הפעל את אפליקציית Startup Applications ממפעיל היישומים ולחץ על כפתור הוסף כדי להוסיף ערך חדש.





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





כאמור לעיל, תזכורת גיבוי מוצגת בכל אתחול מחדש.



Systemd

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

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

$mkdir -p~/.config/מערכת/מִשׁתַמֵשׁ
$ננו~/.config/מערכת/מִשׁתַמֵשׁ/backup_reminder.service

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

הדבק את הקוד למטה בקובץ backup_reminder.service שנוצר באמצעות הפקודה למעלה.

[יחידה]
תיאור = שולח תזכורת גיבוי בכל אתחול מחדש
PartOf = graphical-session.target

[שֵׁרוּת]
ExecStart = bash -c 'sleep 10; שלח הודעה-שלח 'בצע גיבוי' '
Type = oneshot

[להתקין]
WantedBy = graphical-session.target

הקוד למעלה די פשוט. הוא שולח הודעת בצע גיבוי 10 שניות לאחר טעינת ההפעלה הגרפית (פעם אחת לאתחול או התחברות).

הפעל את הפקודות להלן כדי לאפשר את השירות כך שיוכל לפעול אוטומטית בכל הפעלה מחדש.

$chmod 644~/.config/מערכת/מִשׁתַמֵשׁ/backup_reminder.service
$ systemctl--מִשׁתַמֵשׁ לְאַפשֵׁרbackup_reminder.service
$ systemctl--מִשׁתַמֵשׁטען מחדש
$ אתחול מחדש

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

$אישמערכת

שים לב שדוגמה זו מסבירה יצירת שירות חדש שאינו דורש גישה לשורש ומתאים לאפליקציות הפעלה אוטומטיות שאינן דורשות הרשאות שורש. אם ברצונך להפעיל סקריפטים הדורשים גישת שורש באופן אוטומטי, עליך ליצור שירות מערכת חדש בספריית/etc/systemd/system במקום ~/.config/systemd/user ותיקון –השמטת משתמש בפקודות שהוזכרו לעיל.

קרון איוב

Cron הוא כלי שיכול להריץ מעת לעת משימות מתוזמנות בהתאם לתנאים שצוין על ידי משתמש. עבודות מתוזמנות אלה נוצרות ב- Crontab בפורמט מוגדר מראש. במילים פשוטות, Crontab אומר לקרון אילו משרות יש לבצע באיזו נקודת זמן.

בדומה ל- systemd, ניתן להשתמש בעבודות crontab להפעלת אפליקציות ולהפעלת סקריפטים באופן אוטומטי בעת האתחול. כדי להוסיף עבודת cron חדשה, הפעל את הפקודה הבאה:

$crontab

הוסף את השורות הבאות בסוף קובץ הטקסט (מפעיל אוטומטית מסוף GNOME בכל אתחול מחדש):

SHELL =/bin/bash
@reboot sleep 30 && DISPLAY =: 0 מסוף gnome

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

שים לב שבניגוד ל- systemd, cron לא יכול לזהות אם הטעינה הפעלה גרפית או לא. עליך לציין תקופת המתנה משוערת עד ששרת X יטען ומזהה תצוגה. תוכל לדעת על מזהה התצוגה שלך על ידי הפעלת הפקודה שלהלן:

$זרק תצוגה של $

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

Rc.local

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

כדי להוסיף פקודות / סקריפטים לקובץ rc.local, הפעל את הפקודה למטה (יוצר קובץ rc.local חדש אם הוא אינו קיים):

$סודו ננו /וכו/rc.local

הוסף את הפקודות שלך בין #! /bin/bash ויציאת 0 שורות, כפי שמוצג להלן:

#! /bin/bash
נתיב/אל/my_script.sh
יציאה 0

הפוך את קובץ rc.local להפעלה על ידי הפעלת הפקודה שלהלן:

$סודו chmod+ x/וכו/rc.local

פשוט הפעל מחדש כדי שתסריט ההפעלה ייכנס לתוקף.

סיכום

אלה כמה שיטות שניתן להשתמש בהן להפעלה אוטומטית של סקריפטים ואפליקציות בעת ההפעלה. אם אתה מחפש להריץ סקריפטים שאינם דורשים גישה לשורש, הייתי ממליץ להשתמש באפליקציית GUI של Startup Applications. אם אתה רוצה להריץ אפליקציות ותסריטים עם גישה לשורש, הייתי מציע לך ליצור שירות מערכת ברמת המערכת.

על הסופר

ניטש קומאר

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

צפה בכל הפוסטים