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

כפה על הפסקת תהליכי התנהגות לא נכונה באמצעות פקודות Linux אלה

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

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

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

למה להרוג תהליך?

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

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

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

משתמש ב pgrep פקודה

רוב משתמשי לינוקס מכירים את grep פקודה. ה pgrep ניתן להשתמש בפקודה בשורות דומות של grep.

pgrep הפקודה בעת שימוש, מציגה את pid של תהליך הריצה כפי שצוין בפקודה. פקודה זו תועיל מאוד בזמן השימוש ב- pkill פקודה.

תחביר כללי:

pgrep [אפשרויות] [תבנית]

אפשרויות חשובות זמינות עם pgrep פקודה

אוֹפְּצִיָהתיאור
-uמזהה תהליך רשימת בבעלות משתמש ספציפי
לספור את מספר תהליכי ההתאמה
-אנירשום רק שמות תהליכים
רשום את הנתיב המלא של שם התהליך

הבה נדגים את השימוש ב pgrep פקודה באמצעות דוגמה.

pgrep -u gaurav gnome

כאן, אנו רוצים לראות את pids של גמד התהליך שנמצא בבעלות המשתמש 'gaurav'. אוֹפְּצִיָה -u מאפשר לך לרשום את pids של התהליכים שבבעלות משתמש ספציפי. במקרה זה, משתמש gaurav.

תְפוּקָה:

gaurav@ubuntu:~$ pgrep -u gaurav gnome 1752 1755 1909 1922 2021 2576 4279 gaurav@ubuntu:~$

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

הבה נעבור כעת ל- pkill פקודה וביצועה.

באמצעות pkill פקודה

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

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

תחביר:

pkill [options][process_name_pattern] 

דוגמא:

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

חלק עליון
למעלה - 14:24:02 למעלה 3:12, משתמש אחד, ממוצע עומס: 0.29, 0.48, 0.58 משימות: 221 סה"כ, 1 ריצה, 172 שינה, 0 עצרו, 1 זומבי %Cpu(s): 5.6 us, 1.0 syy , 0.0 ni, 92.9 id, 0.4 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem : 3928240 סה"כ, 610456 בחינם, 2233152 בשימוש, 1084632 buff/cache KiB 3703 פנויים: 8,403 פנויים בשימוש: 8,408 פנויים 1187268 הועיל משתמש Mem PID יח"צ NI Virt RES SHR S% CPU% MEM זמן + COMMAND 4077 Gaurav 20 0 3,312,128 673,480 118,360 S 19.6 17.1 15: 13.23 תוכן אינטרנט 3712 Gaurav 20 0 3,953,008 453,544 116,476 S 4.0 11.5 9: 28.39 MainThread 2010 Gaurav 20 0 4084232 111096 45,024 S 1.7 2.8 3: 14.85-פגז gnome שורש 1197 20 0 1,039,612 33,704 22,988 S 1.0 0.9 3: 04,42 Xorg 1426 couchdb 20 0 3,772,396 16,908 2520 S 0.7 0.4 1: 50.83 beam.smp 3288 Gaurav 20 0 722,480 25,048 18,272 S 0.7 0.6 0: 06,84 gnome-terminal- Gaurav 3915 20 0 2,804,900 231,524 111,228 S 0.7 5.9 0: תוכן אינטרנט 54.42 4146 Gaurav 20 0 3,017,924 245,304 120,604 S 0.7 6.2 2: תוכן אינטרנט 01.21 4417 Gaurav 20 0 2,964,208 234,396 119,160 S 0.7 6.0 0 :59.90 תוכן אינטרנט 4860 gaurav 20 0 3066800 372920 132544 S 0.7 9.5 0:48.20 תוכן אינטרנט 16007 gaurav 20 0 41944 3780 3116 10.7 למעלה 10. 

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

למעלה | grep -i mongo

הערה: כאן, השתמשתי באפשרות -i כדי להפוך את החיפוש לבלתי רגיש לאותיות רישיות.

הפלט של פקודה זו יציג את התהליכים התואמים לשם 'mongo'

 1158 MongoDB 20 0 288,564 4848 1320 S 0.7 0.1 1: 03,22 mongod 1158 MongoDB 20 0 288,564 4848 1320 S 1.0 0.1 1: 03,25 mongod 1158 MongoDB 20 0 288,564 4848 1320 S 0.7 0.1 1: 03,27 mongod 1158 MongoDB 20 0 288,564 4848 1320 S 0.7 0.1 1: 03,29 mongod 1158 MongoDB 20 0 288,564 4848 1320 S 0.7 0.1 1: 03,31 mongod 1158 MongoDB 20 0 288,564 4848 1320 S 0.7 0.1 1: 03,33 mongod 1158 MongoDB 20 0 288,564 4848 1320 S 1.0 0.1 1: 03,36 mongod 1158 MongoDB 20 0 288,564 4848 1320 S 0.7 0.1 1: 03,38 mongod 1158 MongoDB 20 0 288,564 4848 1320 S 0.7 0.1 1: 03,40 mongod 1158 MongoDB 20 0 288,564 4848 1320 S 1.0 0.1 1: 03,43 mongod 1158 MongoDB 20 0 288,564 4848 1320 S 0.7 0.1 1: 03,45 mongod 1158 MongoDB 20 0 288,564 4848 1320 S 1.0 0.1 1: 03,48 mongod 1158 MongoDB 20 0 288,564 4848 1320 S 0.3 0.1 1: 03,49 mongod 1158 MongoDB 20 0 288,564 4848 1320 S 1.0 0.1 1: 03,52 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0.7 0.1 1:03.54 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.57 mongod

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

pkill מונגו

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

gaurav@ubuntu:~$ pgrep mongo gaurav@ubuntu:~$

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

אפשרויות בשימוש תכוף עם pkill פקודה

תוך כדי שימוש ב pkill הפקודה נצטרך את האפשרויות המוזכרות לשימוש נכון וללא מאמץ ב- pkill פקודה.

אפשרויותתיאור
התאמה מול טיעונים מלאים כולל רווחים, מרכאות, תווים מיוחדים
-uלהודיע ​​לתהליך pkill כך שיתאים לתהליך המופעל על ידי המשתמש שצוין
-1טוען מחדש את התהליך
-9הורג את התהליך
-15מבטל בחן תהליך

הבה נראה עוד דוגמה אחת pkill פקודה באמצעות ה אוֹפְּצִיָה.

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

ping bbc.com ping youtube.com

שני התהליכים יוזמים על ידי ה פינג פקודה. כעת, נניח שאנו רוצים לסיים רק תהליך אחד "פינג youtube.com", אז עלינו להשתמש ב- אפשרות עם ה pkill פקודה אשר הורגת תהליך עם שם ספציפי כולל הרווחים והמרכאות משם התהליך.

פקודה:

gaurav@ubuntu:~$ pkill -f "ping youtube.com" gaurav@ubuntu:~$ 

תוֹצָאָה:

gaurav@ubuntu:~$ ping youtube.com PING youtube.com (142.250.67.206) 56(84) בתים של נתונים. 64 בתים מ-bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=1 ttl=117 time=30.9 ms 64 בתים מ-bom12s08-in-f14.1e100.25 = 0.277.25:q. =117 זמן=121 אלפיות השנייה 64 בתים מ-bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=206 ttl=117 זמן=86.5 אלפיות השנייה 64 בתים מ-bom12s08-in-14102.5 ): icmp_seq=207 ttl=117 time=105 ms הסתיים gaurav@ubuntu:~$ 

הנה ה "פינג ל-youtube.comתהליך " נהרג כעת וה"ping bbc.comעדיין פועל בטרמינל.

במקרה, אם היינו משתמשים ב- pkill ping פקודה, זה היה הורג את שניהם פינג תהליכים, דבר שאינו רצוי.

אותות בשימוש עם pkill פקודה

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

להלן רשימת האותות הזמינים.

אוֹתמִפרָט
1(HUP)טוען מחדש את התהליך שצוין
9 (לַהֲרוֹג)הורג את התהליך שצוין
15 (טווח)עוצר או מבטל בעדינות את התהליך שצוין

עבור הדרכה זו, אנו נסתמך מאוד על לַהֲרוֹג אוֹת. הבה נעבור על כמה דוגמאות כדי להבין זאת טוב יותר.

משתמש ב pgrep פקודה כדי לקבל את pid התאמה מול השם אפאצ'י.

gaurav@ubuntu:~$ pgrep apache 1218 10402 10403 gaurav@ubuntu:~$
pkill -הרוג את אפאצ'י

או שאתה יכול גם להשתמש בפקודה עם מספרים (למשל 1, 9, 15)

pkill -9 אפאצ'י

שתי הפקודות המוצגות לעיל יהרגו את תהליך אפאצ'י. אישור עם ה pgrep שוב פקודה.

gaurav@ubuntu:~$ pgrep apache gaurav@ubuntu:~$

בתור ה pgrep הפקודה לא מחזירה פלט, מוכיחה שתהליך ה-apache נהרג.

סיכום

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