הרג תהליך הוא לפעמים הדרך היחידה להיפטר ממנו. למרות השם הקשה, "הרג" תהליך פירושו רק "לאלץ אותו להפסיק." כך תעשה זאת משורת הפקודה Linux או macOS.
מהו תהליך?
הפעלת תוכניות כמו דפדפן האינטרנט שלך, תהליכי רקע המשויכים לסביבת שולחן העבודה שלך ושירותי מערכת לינוקס הם כל התהליכים.
ניתן לגבש תהליכים לשתי קבוצות:
- תהליכי חזית הם כאלה שהופעלו או הושקו על ידי משתמש. הם עשויים להיות בחלון מסוף, או שהם עשויים להיות יישום גרפי.
- תהליכי רקע הם כל התהליכים שמתחילים באופן אוטומטי ואין להם שום אינטראקציה עם המשתמשים. הם לא מצפים לקלט מהמשתמשים וגם לא מציגים תוצאות או פלט בפניהם. תהליכי רקע הם דברים כמו שירותים ודמונים.
אם תהליכי החזית הם חזית צוות התיאטרון והשחקנים, תהליכי הרקע הם צוות "מאחורי הקלעים".
כאשר תהליכים מתנהגים בצורה לא נכונה או מתקשים, הם יכולים לחזוך יותר מדי זמן מעבד, לצרוך את זיכרון ה- RAM שלך או להיכנס לולאה חישובית הדוקה ולהיות בלתי מגיבים. יישומים גרפיים יכולים לסרב להגיב ללחיצות עכבר. ייתכן שיישומי מסוף לעולם לא יחזירו אותך לשורת הפקודה.
התשובה ההומנית
"הרג" תהליך פירושו רק "לאלץ את התהליך להפסיק." זה עשוי להיות נחוץ אם התהליך מסרב להגיב.
לינוקס מספקת את
לַהֲרוֹג
,
pkill
, ו
להרוג הכל
פקודות כדי לאפשר לך לעשות בדיוק את זה. ניתן להשתמש בפקודות אלה בכל סוג של תהליך, גרפי או שורת פקודה, חזית או רקע.
פיקוד ההרג
להשתמש
לַהֲרוֹג
, עליך לדעת את מזהה התהליך (PID) של התהליך שברצונך לסיים. ה
נ.ב
ניתן להשתמש בפקודה כדי למצוא את ה- PID של תהליך.
יש
נ.ב
חפש בכל התהליכים באמצעות
זה
(כל התהליכים) אפשרות. צנרת את הפלט
פָּחוּת
מומלץ, הולך להיות לא מעט מזה. סוּג
נ.ב
, מרחב,
זה
, מרחב,
|
(תו מקטרת), רווח אחר ואז הקלד
פָּחוּת
. לחץ על Enter כדי לבצע את הפקודה.
ps -e | פָּחוּת
זה ייתן לך רישום בתהליך שנראה דומה לצילום המסך שלמטה. אתה יכול לחפש קדימה פנימה
פָּחוּת
משתמש ב
/
מקש ותוכל לחפש אחורה באמצעות
?
מַפְתֵחַ.
כדי להכנס לתהליך שאתה מעוניין בו, צינור את הפלט ממנו
נ.ב
דרך
אחיזה
וציין את השם - או חלק מהשם - של התהליך.
ps -e | היורה grep
לאחר שאיתרת את ה- PID של התהליך שברצונך לסיים, העביר אותו ל-
לַהֲרוֹג
פקודה כפרמטר. לסיים את
תְרִיס
תהליך שזוהה על ידי הפקודה הקודמת, השתמש בפקודה זו:
להרוג 2099
ה
לַהֲרוֹג
הפקודה היא מתנקש שקט - הוא לא נותן לך משוב אם הוא הצליח.
פיקוד pkill
ה
pkill
הפקודה מאפשרת לך להרוג תהליך - או תהליכים - בשם. אינך צריך לזהות את התהליך על ידי PID. להשתמש
pkill
אתה מספק מונח חיפוש
pkill
משתמש כדי לבדוק את רשימת התהליכים הרצים. תהליכי התאמה מסתיימים. אז אתה צריך להיות חיובי שקיבלת נכון את מונח החיפוש הזה.
כרשת ביטחון תוכלו להשתמש ב-
pgrep
פקודה
לפני
אתה משתמש ב-
pkill
פקודה. ה
pgrep
הפקודה מקבלת גם מונח חיפוש. זה יפרט את ה- PID של כל תהליך התואם למונח החיפוש. זה בטוח בגלל
pgrep
לא תנפיק שום אות להרוג לתהליכים, ואם תקליד בטעות את מונח החיפוש לא תהרוג תהליך אחר בטעות. אתה יכול לוודא שיש לך מחשבה נכונה על מונח החיפוש לפני שתעביר אותו אליו
pkill
. שניהם
pkill
ו
pgrep
התייחס למונח החיפוש באותו אופן. הטיפול שלהם כל כך דומה שהם
לשתף את אותו דף האיש
.
נניח שיש תהליך עם "subq" בשמו. נשתמש ב-
ps -u דייב | grep
פקודה להציץ מאחורי הווילון. אתה יכול לראות ש- "subq" יתאים לתהליך זה ולתהליך זה בלבד. זה היה רק כדי שתוכלו לראות את השם המלא של התהליך.
ps -u דייב | grep subq
בואו נניח את המשתמש שלנו
לא
עשה את זה; כל מה שהם יודעים זה ששם התהליך מכיל את המצע "subq". הם משתמשים
pgrep
לבדוק שיש התאמה אחת בלבד למונח החיפוש. לאחר מכן הם משתמשים במונח החיפוש הזה עם
pkill
.
pgrep subq
pqill subq
אתה יכול להשתמש
pkill
להרוג כמה תהליכים בבת אחת. כאן המשתמש רץ
pgrep
כדי לבדוק כמה תהליכים Chrome השיקה. הם משתמשים
pkill
להרוג את כולם. לאחר מכן הם בודקים עם
pgrep
שכולם הוסרו.
כרום pgrep
כרום pkill
כרום pgrep
אם פועלים כמה תהליכים עם אותו שם, אך אינך מעוניין להרוג את כולם, תוכל להשתמש בהם
pgrep
עם ה
-f
(שורת פקודה) אפשרות לזהות איזה תהליך הוא איזה. דוגמה פשוטה תהיה שתיים
פינג
תהליכים. אתה רוצה להרוג אחד מהם אבל לא את השני. אתה יכול להשתמש בשורות הפקודה שלהם כדי להבחין ביניהם. שימו לב לשימוש במרכאות כדי לעטוף את הפרמטר של שורת הפקודה.
pgrep -f "ping 192.168.4.22"
pkill -f "פינג 192.168.4.22"
פקודת קילל
אַזהָרָה
: במערכות ההפעלה Solaris ו- OpenIndiana
להרוג הכל
פקודה תרצה
להרוג את כל התהליכים השייכים לך
. אם הם שורש או אם הנפקת
סודו קילל
אתה אתחל את המחשב שלך מחדש! במהלך המחקר למאמר זה, התנהגות זו אושרה עם הגרסה האחרונה של OpenIndiana Hipster 2018.10.
ה
להרוג הכל
פקודה
פועלת באופן דומה
אל ה
pkill
פקודה אך עם הבדל ספציפי. במקום להעביר מונח חיפוש לפקודה עליך לספק את שם התהליך המדויק.
אינך יכול לספק התאמה חלקית לשם התהליך; עליך לספק את כל שם התהליך, כפי שמוצג:
להרוג את סיבוב
תריס להרוג
ה
-Y
אפשרות (צעירה מ) מאפשרת לך להרוג תהליכים שרצו
פָּחוּת
מתקופה מוגדרת. התקופה ניתנת במספרים ואחריה אחת מהיחידות הבאות:
- שניות (שניות)
- מ '(דקות)
- שעות (שעות)
- ד (ימים)
- w (שבועות)
- M (חודשים, הערה, הון "M")
- y (שנים)
להרוג תהליך שנקרא
אִמָא
שזה עתה הושק ומשאיר כל מופע ישן יותר של
אִמָא
פועל, אתה יכול להשתמש בפרמטרים הבאים עם
להרוג הכל
, אם היית מגיב תוך שתי דקות:
הקפיצו אותי או אותי
ה
-ה
האפשרות (ישנה מ) מאפשרת לך להרוג תהליכים שפועלים במשך תקופה מוגדרת יותר. פקודה זו תהרוג את כולם
ssh
חיבורים שפועלים יותר מיממה:
killall -o 1d sshd
אל תהיה יותר מדי טריגר שמח
פקודות אלו יאפשרו לך לזהות ולסיים כהלכה תהליכים שגויים.
תמיד היה זהיר. ראשית, וודא כי התהליך שאתה עומד להרוג הוא באמת זה שאתה רוצה. שנית, בדוק פעמיים - היזהר וודא שהתהליך הממוקד הוא זה שאתה רוצה לסיים. המשך בסיום התהליך לאחר שתהיה מרוצה.