הפעל את פקודות Bash ברקע בצורה הנכונה [Linux]

Rularea comenzilor Bash în fundal în modul corect [Linux]
⏱️ 1 min read

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

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

יער אילנות (הארבורט...
יער אילנות (הארבורטום הלאומי)

סיים פקודה עם &

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

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

&אחרי פקודה ואז דחה אותה

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

כדי להשתמש בשיטה זו, ראשית התחל בהוספת א &.

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

bash-background-disown-jobs

פשוט תקליד disown במעטפת, וזה יעשה בדיוק את זה (ואתה יכול שוב לאמת זאת עם jobs פקודה).

&אחרי פקודה עם /dev/null

מוֹסִיף & לאחר פקודה ישים אותו ברקע, אך כתוצאה מכך פקודת הרקע תמשיך להדפיס הודעות למסוף כל עוד אתה משתמש בה. אם אתה מחפש להימנע מכך, שקול להפנות את הפקודה אל /dev/null.

bash-background-dev-null

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

Nohup, עם & ו-/dev/null

שלא כמו הפקודות הקודמות, באמצעות nohup מאפשר לך להריץ פקודה ברקע ולהשאיר אותה פועלת. אֵיך? Nohup מתעלם מהאות HUP (אות כיבוי), מה שמאפשר לבצע פקודות ברקע, גם כשהטרמינל כבוי. שלב את הפקודה הזו עם הפנייה מחדש אל /dev/null (כדי למנוע מ-nohup ליצור קובץ nohup.out), והכל עובר לרקע בפקודה אחת.

bash-background-no-hup

סיכום

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

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

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

איך גורמים לתוכניות טרמינל לרוץ ברקע? ספר לנו למטה!

קרדיט תמונה: מסוף אחד – ארבעה מסכים

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar of Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

You may also like...

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x