עבודה עם תהליך לינוקס פירושה לעתים קרובות לדעת את מזהה התהליך שלו, או PID. זהו מספר ייחודי שניתן לכל פיסת תוכנה ריצה. להלן שתי דרכים לגלות מה זה.
מהו מזהה תהליך לינוקס?
כיצד להשיג PID לינוקס עם הפקודה PIDOF
כיצד למצוא PIDs עם הפקודה PGREP בלינוקס
מהו מזהה תהליך לינוקס?
באופן פנימי, לינוקס עוקבת אחר תהליך ההפעלה שלה על ידי הקצאתם מספר מזהה ייחודי, המכונה מזהה התהליך, או PID. לכל יישום, כלי עזר ולדמון פועלים יש PID.
PIDs הם ערכי מספר שלמים פשוטים. תהליך שהתחלה לאחרונה יקבל PID אחד גבוה יותר מה- PID האחרון שהונפק. אז התהליך עם ה- PID הגבוה ביותר הוא התהליך החדש ביותר - כלומר, לאחרונה - הושק. זה ממשיך עד שהמערכת פוגעת בערך המקסימלי עבור PID.
הגבול העליון עבור PID הוא 32768. ברגע שמגיעים לדמות זו, לינוקס חוזרת להתחלה ומחפשת PID שהפך לחופשי מכיוון שהתהליך שהיה בעבר בבעלותו הוא הסתיים.
התהליך עם PID של 1 הוא התהליך הראשון שמושק כאשר לינוקס מושק על ידי תהליכי האתחול. על מערכות מבוססות SystemD שיהיו
Systemd
ו במערכות אחרות זה כנראה יהיה
init
, למרות שחלק מההפצות לינוקס משתמשות באלטרנטיבות כגון
OpenRC
אוֹ
S6
ו
לפעמים כדאי לגלות את ה- PID של תהליך, בדרך כלל מכיוון שאתה רוצה לבצע פעולה כלשהי בתהליך זה. להלן שתי שיטות שונות למצוא את ה- PID של תהליך כשאתה יודע את שֵׁם של התהליך.
קָשׁוּר: מהן PIDs של יוניקס ואיך הם עובדים?
כיצד להשיג PID לינוקס עם הפקודה PIDOF
ה
PIDOF
ניתן לחשוב על הפקודה כשילוב של "PID" ו- "של." זה כמו לשאול מה ה- PID של התהליך הזה? אם אנו משתמשים בפקודה ללא פרמטרים זה לא עושה דבר. זה מחזיר אותך בשקט לשורת הפקודה. עלינו לציין שם תהליך.
PIDOF
אומר לנו שה- PID של מעטפת הבסיס הוא 8304. אנו יכולים לוודא שעם
נ.ב
פקודה. כל מה שאנחנו צריכים לעשות זה להתקשר
נ.ב
ללא פרמטרים. זה ידווח על התהליכים הפועלים בפגישה הנוכחית.
כי
נ.ב
דיווחים על כל התהליכים שהיא יכולה למצוא, שיכללו את עצמה, היא אומרת לנו שיש א
לַחֲבוֹט
תהליך ו
נ.ב
ריצת תהליכים. כפי שהיינו מצפים, ה
לַחֲבוֹט
לתהליך יש את אותו PID ש
PIDOF
לדווח על.
אם יש לך יותר מחלון מסוף אחד פתוח,
PIDOF
ידווח על כולם.
שימו לב כי ה- PIDs רשומים מהגבוה ביותר לנמוך ביותר או, במילים אחרות, מהאחרון ועד העתיק ביותר.
מה שזה לא מראה הוא שאולי אתה לא הבעלים של כל התהליכים האלה.
PIDOF
מוצא את כל התהליכים עם שמות תואמים, ללא קשר למי הבעלים שלהם. בואו נראה עמוק יותר על ידי צנרת התפוקה לתוכו
גרפ
ו אנו משתמשים ב-
-e
(בחר את כל התהליכים) ואת
-f
(רישום מלא) אפשרויות עם
נ.ב
ו
שניים מתהליכי BASH שייכים למשתמש דייב, השלישית שייכת למשתמש מרי.
לפעמים יישום אחד יפיק תהליכים רבים, שכל אחד מהם מקבל PID משלה. זה מה שאנחנו מקבלים עם גוגל כרום.
כברירת מחדל,
PIDOF
דיווחים על כל התהליכים. אם אנו רוצים, נוכל לבקש רק את האחרון מבין התהליכים הללו. ה
-s
אפשרות (Sing Shot) עושה בדיוק את זה.
להשתמש ב-
לַהֲרוֹג
פקודה ל
להרוג ידנית
כל ה
כרום
תהליכים יהיו מייגעים. אם אנו לוכדים את רשימת התהליכים למשתנה, נוכל להעביר את המשתנה הזה ל
לַהֲרוֹג
פקודה. ה
לַהֲרוֹג
הפקודה יכולה לקבל מספר PIDs בפקודה שלה, כך שהיא מקבלת בשמחה את הקלט שלנו והורגת עבורנו את כל התהליכים.
הפקודה הראשונה אוספת את הפלט מ
PIDOF
ומקצה אותו למשתנה שלנו, אותו אנו קוראים
PID
ו אנחנו לא צריכים
הֵד
זה למסך, אנחנו פשוט עושים את זה כדי להראות מה המשתנה שלנו מחזיק.
אנו מעבירים את המשתנה ל
לַהֲרוֹג
פקודה ואז השתמש
PIDOF
שוב כדי לבדוק אם נותרו תהליכי כרום כלשהם. כולם נהרגו.
מוזר אחד של
PIDOF
זה שזה לא יחזיר את ה- PID של תסריט פגז. זה מחזיר את ה- PID של
לַחֲבוֹט
מעטפת שמריצה את התסריט. כדי לראות את הקליפה שמריצה תסריט, עלינו להשתמש ב
-איקס
אפשרות (סקריפטים).
PIDOF
מחזיר את PID של מעטפת BASH, ו
נ.ב
מראה לנו שיש שני פגזים שרצים. האחד הוא הקליפה שמריצה את
PIDOF
הפקודה, והשנייה היא הקליפה שמריצה את התסריט.
כיצד למצוא PIDs עם הפקודה PGREP בלינוקס
ה
PGREP
הפקודה עובדת קצת כמו
PIDOF
בהשגת מזהי תהליכים בלינוקס. עם זאת, זה לא מוצא רק תהליכים התואמים בדיוק את רמז החיפוש, הוא גם מחזיר את ה- PID של כל תהליכים ששמו
מכיל
טקסט החיפוש.
הנה דוגמא למחשב ש- Firefox פועל עליו.
כל הפקודות הללו מוצאות את תהליך Firefox ומחזירות את ה- PID. אבל אם הזנת את הפקודה:
בפני עצמה, איך היית יודע אם PGREP מצא את FI Refo x ולא, נגיד, דמון בשם P Refor MD?
אם אתה מוסיף את
-ל
(שם רשימה) אפשרות, PGREP תפרט את שם התהליך לצד ה- PID.
אם ישנם מספר מקרים של תהליך התאמה, כולם רשומים.
שים לב שהם מופיעים בסדר עולה, שהוא הסדר ההפוך לפלט
PIDOF
ו הם רשומים מהתהליך העתיק ביותר לתהליך החדש ביותר. כפי שראינו עם
PIDOF
, לא כל התהליכים הרשומים בהכרח שייכים לך.
ה
-U
(מזהה משתמש) אפשרות מאפשרת לך לחפש תהליכים התואמים את טקסט החיפוש, ונמצאים בבעלות השם
מִשׁתַמֵשׁ
ו
הפעם אנו רואים שלושה תהליכי BASH בתוצאות. השני משמש
מרי
ו
ואנחנו יכולים לבקש לראות את כל התהליכים עבור משתמש ספציפי.
כדי לראות את שורת הפקודה המלאה, השתמש ב
-א
אפשרות (רשימה מלאה).
מילה על בעלות על PID
לא כל תהליכי המערכת נמצאים בבעלות משתמש השורש ו רבים הם כמובן, אך לא כולם. לדוגמה, פקודה זו עובדת:
זה נכשל בגלל
שורש
אינו הבעלים של התהליך הזה. הבעלים בפועל הוא משתמש מערכת בשם "Avahi." באמצעות שם המשתמש הנכון, הפקודה עובדת.