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

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

מהם תהליכי זומבים?

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

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

למרות שתהליך זומבי אחד או שניים לא יגרום לבעיות שיבוש או ביצועים במחשב שלך, א מספר גדול של תהליכים כאלה עלול לפגוע בזרימת העבודה של המערכת שלך על ידי הצפה בטבלת התהליכים וב- אֶמְצָעִי.

מה גורם לתהליכי זומבים בלינוקס?

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

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

  1. מצב תהליך: המצב הנוכחי של התהליך
  2. מספר התהליך: מספר ייחודי המשמש לזיהוי התהליך
  3. דלפק התוכנית: מכיל מידע הקשור להוראה הבאה
  4. רושמים: רשימת כל רישומי המעבד המשמשים את התהליך
  5. פתח את רשימת הקבצים: קבצים המשמשים את התהליך
  6. מידע על תזמון המעבד: מכיל מידע המשויך לזמן המעבד ולמשאבים המוקצים לתהליך
  7. מידע על ניהול זיכרון: כולל פרטים על כמות הזיכרון המשמשת את התהליך
  8. מידע על קלט / פלט: רשימת התקני קלט או פלט המשמשים את התהליך

לינוקס משתמשת במצבי התהליך הבאים כדי לתאר את כל התהליכים שלה.

  • ר: תהליך ריצה
  • ס: תהליך שינה
  • ד: תהליך שינה ללא הפרעה
  • ט: התהליך הסתיים
  • ז: תהליך זומבי

בכל פעם שתהליך משלים את המשימה שהוקצתה, מצב התהליך שלה מוגדר כ- מְטוּמטָם אוֹ ז. לכל תהליך יש הורה שקורא למשפחת פונקציות בשם לַחֲכוֹת() שמחכה לשינוי המדינה בתהליך. לדוגמא, אם מצב התהליך משתנה מ- רץ ל מְטוּמטָם, ה לַחֲכוֹת() השיטה תופעל.

ה לַחֲכוֹת() השיטה בדרך כלל מוחקת את בלוק בקרת התהליך הקשור לתהליך זומבי זה ואז מסיר את הזנת התהליך מטבלת התהליך.

אך לפעמים, בשל התפתחות לקויה של תוכנית, תהליך ההורה אינו מכנה את לַחֲכוֹת() פוּנקצִיָה. וכתוצאה מכך, המערכת אינה מוחקת את ה- PCB של תהליך הזומבי. הזנת טבלת התהליך עבור אותו תהליך ספציפי נותרת בעינה גם כן.

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

למד עוד: דרכים להרוג תוכניות שאינן מגיבות בלינוקס

כיצד למצוא תהליכי זומבים?

הצעד הראשון להסרת תהליכי זומבים במערכת שלך הוא ניתוח של איזה תהליך יש מְטוּמטָם מצב תהליך. אמנם לא תוכל להרוג תהליכים אלה ישירות מכיוון שהמערכת כבר הסירה אותם מהזיכרון, אתה יכול להרוג את תהליך האב המשויך אליהם.

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

חלק עליון

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

אתה יכול לרשום מידע הקשור לתהליכי זומבים אלה באמצעות צנרת הפקודה ps עם egrep. Egrep הוא הרחבה של הפקודה grep בלינוקס אשר מתייחסת לכל הדפוסים כאל מחרוזת regex מורחבת.

קָשׁוּר: המדריך למתחילים לביטויים רגולריים עם פיתון

הקלד את הפקודה הבאה כדי לרשום את כל תהליכי הזומבים:

ps aux | egrep "Z | מושבת"

הפקודה האמורה תחפש שורות המכילות אחת מהן ז אוֹ נִפטָר בפלט שנוצר על ידי הפקודה ps. הפלט מורכב מרשימה של תהליכי הזומבים הפועלים במערכת שלך.

הריגת תהליכי זומבים באמצעות פקודת ההרג

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

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

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

ps -o ppid = -p 18614

תְפוּקָה:

18613

ודא אם מזהה התהליך האב קיים באמצעות ה- נ.ב פקודה.

ps -e | גרפ 18613

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

sudo kill -SIGKILL 18613

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

ניהול תהליכים ביעילות בלינוקס

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

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

אימייל
מהו תהליך בלינוקס?

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

קרא הבא

נושאים קשורים
  • לינוקס
  • לינוקס
  • מעבד
על הסופר
שארמה של דיפש (45 מאמרים פורסמו)

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

עוד מ- Deepesh Sharma

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

צעד אחד נוסף !!!

אנא אשר את כתובת הדוא"ל שלך בדוא"ל ששלחנו לך זה עתה.

.