כיצד להרוג תהליך בלינוקס

How Kill Process Linux



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

הורגת תהליך

כדי להרוג תהליך, נשתמש בקומץ כלים: לַהֲרוֹג , pkill , ו להרוג הכל . כולם עובדים באופן זהה.







כלים אלה אינם מסיימים את התהליך עצמו. במקום זאת, הם שולחים אות ייעודי לתהליך היעד או לקבוצות התהליכים. אם לא ציינת אות ספציפי, SIGTERM נשלח כאות ברירת המחדל. עם זאת, ישנם מספר אותות נתמכים, למשל, SIGKILL, SIGHUP וכו '.



להלן מבנה הפקודה הבסיסי עבור לַהֲרוֹג , pkill ו להרוג הכל .



$לַהֲרוֹג <signal_or_options> <PID(ש)>
$ pkill<signal_or_options> <שם התהליך>
$להרוג הכל <אוֹפְּצִיָה> <שם התהליך>

במידת האפשר, מומלץ להשתמש לַהֲרוֹג .





לַהֲרוֹג , pkill ו להרוג הכל מיקומים

Kill היא פקודת ברירת המחדל לסיום תהליך.



$לַהֲרוֹג --עֶזרָה

הוא מופעל מספריית /usr /bin.

$איזה לַהֲרוֹג

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

$pkill--עֶזרָה

$איזהpkill

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

$להרוג הכל --עֶזרָה

$איזה להרוג הכל

פירוט כל התהליכים הפועלים

המשימה הראשונה היא זיהוי ה- PID (מספר זיהוי התהליך) ו/או שם התהליך שברצונך לסיים. בדוגמה זו, אשתמש ב- Firefox כתהליך היעד לסיום. הפעל את הפקודה הבאה כדי להציג את כל התהליכים הפועלים במערכת.

$נ.ב

עבור רוב המשימות, עלינו להכיר את ה- PID של תהליך היעד. עם זאת, במצבים מסוימים, השימוש בשם התהליך מתאים יותר.

אם אתה יודע את השם המדויק של תהליך היעד, תוכל לקבל את ה- PID ישירות באמצעות pidof .

$pidof <שם התהליך>

כלי מעניין נוסף לתפוס את המידע אודות תהליך היעד הוא pgrep. הוא תוכנן במיוחד למטרה.

$pgrep<אוֹפְּצִיָה> <שם התהליך>

להרוג אותות

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

ראשית, בואו נסתכל על הרשימה שתומך בהרג.

$לַהֲרוֹג

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

$לַהֲרוֹג-<אוֹת> <PID>

אוֹ,

$לַהֲרוֹג-<ערך_ערך> <PID>

האותות הפופולריים ביותר הם SIGHUP (1), SIGKILL (9) ו- SIGTERM (15). באופן כללי, SIGTERM היא ברירת המחדל והבטוחה ביותר לסיים תהליך יעד.

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

$להרוג הכל

הורגת תהליך

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

$לַהֲרוֹג <אוֹפְּצִיָה> <PID>

כאן, kill ישלח את אות ברירת המחדל SIGTERM ל- PID (ים). אם רצית לסיים תהליכים מרובים, ציין את כל ה- PIDs המופרדים ברווח.

$לַהֲרוֹג <אוֹפְּצִיָה> <PID_1> <PID_2>

נפרט איזה אות ברצונך לשלוח ליעד.

רוצה לסיים תהליך באמצעות שמו בלבד? השתמש pkill.

$pkill<אוֹפְּצִיָה> <שם התהליך>

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

$להרוג הכל <אוֹפְּצִיָה> <שם התהליך>

לדוגמה, בעת הפעלת Firefox, הוא מתחיל מספר תהליכים. כדי להרוג את כולם בבת אחת, הפעל פקודה זו.

$להרוג הכלfirefox

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

$להרוג הכל -u <מִשׁתַמֵשׁ>

סכסוך הרשאה

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

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

$לַהֲרוֹג כן

עכשיו, מה אם כן רץ מתחת שורש ? קריאת kill מכיוון שהמשתמש הנוכחי לא יעבוד.

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

מחשבות אחרונות

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

$איש לַהֲרוֹג

$אישpkill

תהנה!