כיצד להשתמש בפקודת הזמן הקצוב בלינוקס

מחשב נייד לינוקס המציג בקשת bash

Fatmawati Achmad Zaenuri/Shutterstock.com

בסדר, זה מספיק זמן מחשב. אתה יכול לתת לתהליכים מגבלות זמן, להגדיר זמן מקסימלי שהם יכולים לרוץ עם הפקודה |_+_|. להלן מדריך להצבת מגבלות על הפעלת תוכניות עם פקודה זו.

מה פסק הזמן עושה לך?

ה- |_+_| הפקודה מאפשרת לך להגביל את משך הזמן תוכנית תפעל עבור. אבל למה שתרצה לעשות את זה?





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

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



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

פרסומת

|_+_| הוא חלק מה GNU Core Utils אז לינוקס ו דמוי יוניקס מערכות הפעלה כגון macOS כוללות פסק זמן מובנה ישירות. אין מה להתקין; אתה יכול להשתמש בו ישירות מהקופסה.

תחילת העבודה עם פסק זמן

הנה דוגמה פשוטה. לדוגמה, עם אפשרויות ברירת המחדל של שורת הפקודה, ה- |_+_| הפקודה תפעל עד שתפסיק אותה על ידי לחיצה על Ctrl+C. אם לא תפריע לזה, זה פשוט ימשיך.



timeout

באמצעות |_+_|, נוכל לוודא ש-|_+_| לא פועל שוב ושוב, לועס את רוחב הפס של הרשת ומציק לאיזה מכשיר שמקבל פינג.

הפקודה הבאה הזו משתמשת ב-|_+_| להגבלת זמן |_+_|. אנו מאפשרים 15 שניות של זמן ריצה עבור |_+_|.

timeout

לאחר 15 שניות |_+_| מסיים את |_+_| session ואנחנו חוזרים לשורת שורת הפקודה.

שימוש בפסק זמן עם יחידות זמן אחרות

שימו לב שלא היינו צריכים להוסיף s מאחורי ה-15. |_+_| מניח שהערך הוא בשניות. אתה יכול להוסיף s, אבל זה באמת לא משנה.

פרסומת

כדי להשתמש בערך זמן הנמדד בדקות, שעות או ימים הוסף m, h, או d.

כדי להפעיל ping במשך שלוש דקות, השתמש בפקודה הבאה:

timeout

|_+_| יפעל במשך שלוש דקות לפני |_+_| נכנס פנימה ועוצר את |_+_| מוֹשָׁב.

הפעלת פינג פועלת באלמנה מסוף

הגבלת לכידת נתונים עם פסק זמן

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

בדוגמה זו, אנו משתמשים ב-|_+_|, א לכידת תעבורת רשת כְּלִי. במכונות הבדיקה שעליהן נחקר מאמר זה, |_+_| כבר הותקן באובונטו לינוקס ובפדורה לינוקס. זה היה צריך להיות מותקן על Manjaro Linux ו- Arch Linux, עם הפקודה הבאה:

ping

אנחנו יכולים להריץ |_+_| למשך 10 שניות עם אפשרויות ברירת המחדל שלו, ומנתב את הפלט שלו לקובץ בשם capture.txt עם הפקודה הבאה:

timeout

פרסומת

(ל|_+_| יש אפשרויות משלה לשמור תעבורת רשת שנלכדה לקובץ. זוהי פריצה מהירה מכיוון שאנו דנים ב-|_+_|, לא |_+_|.)

|_+_| מתחיל ללכוד תעבורת רשת ואנו מחכים 10 שניות. ו-10 שניות באות והולכות ו-|_+_| עדיין פועל, ו-capture.txt עדיין גדל בגודלו. זה ייקח Ctrl+C נמהר כדי לעצור |_+_|.

בדיקת הגודל של capture.txt עם |_+_| מראה שהוא גדל ל-209K תוך שניות. הקובץ הזה גדל במהירות!

ping

מה קרה? למה לא |_+_| להפסיק |_+_|?

הכל קשור לאותות.

שליחת האות הנכון

מתי |_+_| רוצה לעצור תוכנית שהיא שולחת את אות SIGTERM . זה מבקש בנימוס מהתוכנית להפסיק. תוכניות מסוימות עשויות לבחור להתעלם מהאות SIGTERM. כשזה קורה, אנחנו צריכים להגיד |_+_| להיות קצת יותר כוחני.

נוכל לעשות זאת על ידי שאלת |_+_| כדי לשלוח את האות SIGKILL במקום זאת.

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

פרסומת

אנחנו יכולים להשתמש ב-|_+_| (אות) אפשרות לספר |_+_| כדי לשלוח את האות SIGKILL.

timeout

הפעם, ברגע שחלפו 10 שניות, |_+_| מופסק.

קודם כל שואל בנימוס

אנחנו יכולים לשאול |_+_| לנסות לעצור את התוכנית באמצעות SIGTERM, ולשלוח את SIGKILL רק אם SIGTERM לא עבד.

לשם כך, אנו משתמשים ב- |_+_| אפשרות (להרוג אחרי). ה- |_+_| אפשרות דורשת ערך זמן כפרמטר.

בפקודה זו, אנו שואלים |_+_| לאפשר |_+_| לרוץ במשך 30 שניות, ולאחר מכן לסיים אותו עם האות SIGTERM. אם |_+_| עדיין פועל לאחר 40 שניות, זה אומר שהתעלמו מה-SIGTERM הדיפלומטי ו- |_+_| צריך לשלוח את SIGKILL כדי לסיים את העבודה.

|_+_| הוא כלי עזר שיכול לפקח על הודעות מאגר טבעת הליבה והצג אותם בחלון מסוף.

ping

פרסומת

|_+_| פועל למשך 30 שניות ומפסיק כאשר הוא מקבל את האות SIGTERM.

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

אחזור קוד היציאה של התוכנית

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

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

פקודה זו מאפשרת |_+_| לרוץ במשך חמש שניות. זה פינג למחשב בשם Nostromo, שנמצא ברשת הבדיקה ששימשה למחקר מאמר זה.

timeout

הפקודה פועלת למשך חמש שניות ו- |_+_| מפסיק את זה. לאחר מכן נוכל לבדוק את קוד היציאה באמצעות הפקודה הזו:

ping

פרסומת

קוד היציאה הוא 124. זהו הערך |_+_| משתמש כדי לציין שהתוכנית הופסקה באמצעות SIGTERM. אם SIGKILL מפסיק את התוכנית, קוד היציאה הוא 137.

אם נקטע את התוכנית עם Ctrl+C קוד היציאה מ-|_+_| הוא אפס.

ping timeout

אם הפעלת התוכנית מסתיימת לפני |_+_| מסיים אותו, |_+_| יכול להעביר את קוד היציאה מהתוכנית בחזרה למעטפת.

כדי שזה יקרה התוכנית צריכה להיעצר מעצמה (במילים אחרות, היא כן לֹא הסתיים על ידי |_+_|), ועלינו להשתמש ב- |_+_| אוֹפְּצִיָה.

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

ping timeout

|_+_| משלים את חמש בקשות הפינג ומסתיים. קוד היציאה הוא אפס.

פרסומת

כדי לוודא שקוד היציאה מגיע מ-|_+_|, בואו נכריח את |_+_| כדי ליצור קוד יציאה אחר. אם ננסה לשלוח בקשות פינג לכתובת IP לא קיימת, |_+_| ייכשל עם קוד יציאה שגיאה. לאחר מכן נוכל להשתמש ב-|_+_| כדי לבדוק שקוד היציאה אינו אפס.

ping timeout

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

קביעת כללי יסוד

|_+_| עוסק במתן גבולות מסוימים להפעלת תוכניות. אם קיימת סכנה שקובצי היומן עלולים לעלות על הכונן הקשיח שלך או שאתה עלול לשכוח שהשארת כלי רשת פועל, עטוף אותם ב-|_+_| ותן למחשב שלך לווסת את עצמו.

פקודות לינוקס
קבצים זֶפֶת · pv · חתול · טק · chmod · אחיזה · הבדל · sed · עם · איש · דחף · popd · fsck · testdisk · seq · fd · פנדוק · CD · $PATH · מביך · לְהִצְטַרֵף · jq · לְקַפֵּל · ייחודי · journalctl · זָנָב · מדינה · ls · fstab · זרק · פָּחוּת · chgrp · chown · לְהַאִיץ · תראה · מחרוזות · סוּג · לשנות שם · רוכסן · לִפְתוֹחַ · הר · umount · להתקין · fdisk · mkfs · rm · rmdir · rsync · df · gpg · אָנוּ · ננו · mkdir · מ · ב · תיקון · להמיר · rclone · שמץ · SRM
תהליכים כינוי · מָסָך · חלק עליון · נֶחְמָד · נחמדים · התקדמות · רצועה · מערכת · tmux · chsh · הִיסטוֹרִיָה · בְּ- · קבוצה · חינם · איזה · dmesg · usermod · נ.ב · chroot · xargs · tty · זרת · lsof · vmstat · פסק זמן · קִיר · כן · לַהֲרוֹג · לִישׁוֹן · סודו · שֶׁלוֹ · זְמַן · הוספה קבוצתית · usermod · קבוצות · לשוו · לכבות · לְאַתחֵל · תפסיק · כיבוי · passwd · lscpu · crontab · תַאֲרִיך · bg · fg
רשת netstat · פינג · traceroute · ip · ss · מי זה · fail2ban · bmon · אתה · אֶצבַּע · nmap · ftp · סִלְסוּל · wget · מי · מי אני · ב · iptables · ssh-keygen · ufw

קָשׁוּר: מחשבי Linux הטובים ביותר למפתחים וחובבי

קרא את הבא תמונת פרופיל עבור דייב מקיי דייב מקיי
דייב מקיי השתמש לראשונה במחשבים כשסרט נייר מחורר היה באופנה, ומאז הוא מתכנת. לאחר למעלה מ-30 שנה בתעשיית ה-IT, הוא כעת עיתונאי טכנולוגיה במשרה מלאה. במהלך הקריירה שלו, הוא עבד כמתכנת עצמאי, מנהל צוות פיתוח תוכנה בינלאומי, מנהל פרויקטים של שירותי IT, ולאחרונה כמנהל הגנת מידע. הכתיבה שלו פורסמה על ידי howtogeek.com, cloudsavvyit.com, itenterpriser.com ו-opensource.com. דייב הוא אוונגליסט של לינוקס ותומך בקוד פתוח.
קרא את הביוגרפיה המלאה

מאמרים מעניינים