ل תהליכים מריצים תוכניות. כל תוכנה יכולה להתחיל בתהליך אחד או יותר שיהיה צורך לטעון אותו בזיכרון הראשי לצורך עיבוד על ידי המעבד. לפעמים ניתן לחלק תהליך למה שמכונה LWPs או תהליכים קלים, כלומר לשרשורים, שרשור או שרשור, איך שלא תרצו לקרוא להם. כאשר כל הנושאים של התהליך בוצעו, אז התהליך הסתיים.
עשיתי את ההקדמה הזאת, תגיד את זה תהליכים בסביבות יוניקס מזוהים על ידי מזהה ויכולים להיות במצבים שונים. מזהה או מזהה זה מספר שמוקצה לתהליך האמור כדי להיות מסוגל לעקוב אחריו. אתה יכול לדעת בקלות את ה- PID של תהליך בעזרת כלי ה- ps, htop, בין כלים אחרים. ותוכלו גם לראות מידע על מעמדו.
ل המדינות בהן יכול להיות תהליך בלינוקס הן:
- פועל: התהליך פועל.
- שינה: התהליך ישן, מחכה לאירוע שיקרה שיעיר אותו וממשיך בביצועו.
- סיום: התהליך מסתיים או מת.
- קלט / פלט של מכשיר - תהליכי התקני קלט / פלט שלא ניתן להפריע להם.
- זומבי: כאשר תהליך ילד מסתיים לפני תהליך ההורה שלו, המידע על הילד נשמר עד שההורה מסתיים גם כן. הבן באמת מת או גמור, אך לא ניתן להשמיד אותו כדי לפנות משאבים. זה לא ממש לוקח זמן מעבד, אבל כן תופס מקום בטבלת התהליכים.
דרך אחת שליחת אותות לתהליכים כך שהם עוברים למצב כזה או אחר היא באמצעות הפקודה להרוג. אם תשתמש בפקודה kill -l תראה את רשימת האותות שתוכל לשלוח. האופייני ביותר הוא לשלוח אות KILL לתהליך כדי להרוג אותו. לדוגמה:
kill -l kill -9 <PID>
אות 9 או SIGKILL הורגים ישירות את התהליך שעליו מסמן PID מבלי לבדוק את המצב. במקום זאת, SIGTERM יפסיק את התהליך רק בנסיבות מסוימות, מכיוון שהוא בודק את מצב התהליך שאליו נשלח האות ואם הוא לא בטוח, האות תתעלם.
ובכן, אחרי שאמרנו את כל זה, לכלים כמו ps יש טור שמראה את STAT או מצב התהליך. אם אתה מסתכל בעמודה ההיא, ההתחלה של המצב שהיא נמצאת בו מופיעה. לדוגמא, S לשינה, או Z לזומבי וכו '. אתה יכול בדוק אם יש לך תהליכי זומבים או לא במערכת שלך עם הפקודה הבאה:
ps aux | grep 'Z'
במקרה שלי, היה אחד עם PID 6393 להרוג תהליכי זומבים, אתה יכול להשתמש בפקודה הבאה:
kill 6393