תהליכי זומבי

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

המצבים העיקריים של התהליכים בלינוקס הם:
שינה (S) : תהליכים שמחכים לתורם לביצוע.
ריצה (R) : תהליכים הפועלים.
ממתין (D) : תהליכים הממתינים לסיום פעולת כניסה / יציאה.
זומבי (Z) : תהליכים שהסתיימו אך ממשיכים להופיע בטבלת התהליכים. הם יכולים להיגרם על ידי שגיאות תכנות ויכולים להיות סימפטום של מערכת איטית או גורמת לבעיות.

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

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

בוויקיפדיה אתה יכול קרא עוד על תהליכים אלה.

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

תהליך

כדי לראות את כל התהליכים, הקלד את המסוף: נ.ב לולראות רק את הזומבים: ps -el | grep 'Z'o ps -A -ostat, ppid, pid, cmd | grep -e '^ [Zz]'

alf @ Alf ~ $ ps -A -ostat, ppid, pid, cmd | grep -e '^ [Zz]'

Z 1945

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

alf @ Alf ~ $ להרוג -9 1945

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

alf @ Alf ~ $ sudo kill -HUP `ps -A -ostat, ppid, pid, cmd | grep -e '^ [Zz]' | awk '{הדפס $ 2}' ''

לגבי


השאירו את התגובה שלכם

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

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   תָקִין דיג'ו

    ???

  2.   אוסקר דיג'ו

    תודה, תרומה טובה מאוד, אני הולך לשמור את הפקודות לבצע בדיקות תקופתיות.

  3.   ג'וש דיג'ו

    תודה, מאמר נחמד.

  4.   MSX דיג'ו

    כמה הבהרות לגבי המאמר שלך:

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

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

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

    עם זאת זה כמעט בלתי אפשרי לקרות מכיוון שבמערכות 32 סיביות יש 32767 רווחים לרישום תהליכים (לעתים רחוקות או אף פעם לא בשימוש) וכפליים במערכת 64 סיביות.

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

    : () {: |: &};:

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

    מאמר זה כולל מידע טוב על מתארי התהליך הלא חוקיים:
    http://www.howtogeek.com/119815/htg-explains-what-is-a-zombie-process-on-linux/
    ובזה יש הסבר ברור כיצד פועלת פצצת מזלג: http://stackoverflow.com/questions/991142/how-does-this-bash-fork-bomb-work

    Salu2

    1.    יוטלה דיג'ו

      msx: «המונח" תהליך זומבי "אינו מתאים מבחינה טכנית ואלו מאיתנו שיש להם מעט ניסיון ב- GNU / Linux צריכים להימנע משימוש בו ...» חה חה חה. יש רק משהו גדול מהגאווה שלך: הטעם הרע שלך. היי, מה שעשית זה בטעם רע, אם אתה רוצה לתת הרצאה, לקבל כזה בפקולטה, או לשים בלוג משלך ולכתוב מה שאתה רוצה, אבל לבוא לכאן לתקן את הדירה אל אלף טוב זה באמת טעם רע .

      1.    פרננדו רוחאס דיג'ו

        האמת נראתה לי תגובה די מעניינת. הרבה יותר מהפוסט

  5.   פלאטונוב דיג'ו

    תודה לך מאוד מעניין.

  6.   87 דיג'ו

    מאמר מעולה תודה

  7.   אלף דיג'ו

    MSX
    «המונח" תהליך זומבי "אינו הולם מבחינה טכנית ואלו מאיתנו שיש להם מעט ניסיון ב- GNU / Linux צריכים להימנע משימוש בו»

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

    לגבי

  8.   סיטוקס דיג'ו

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

  9.   טרוקו 22 דיג'ו

    ב- KDE עם שליטה + פעילויות מערכת בריחה יוצאות ואנחנו יכולים להרוג את הזומבים האלה במהירות.

  10.   גשם דיג'ו

    תיקון, זה ZOMBIE ולא תהליך ZOMBIE
    זומבי הוא באנגלית
    זומבי בספרדית

  11.   אלינקס דיג'ו

    יוקרה, תודה!

  12.   רוברטו דיג'ו

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