איך למצוא את התהליך ההורה PPID ב-Linux

בכל פעם שתוכנית מופעלת, הקרנל יוצר תהליך הקשור לתוכנית. פשוט לומר, תהליך הוא מופע רץ של תוכנית ב-Linux.

התהליך שנוצר על ידי הקרנל מתייחס אליו כ 'תהליך הורה'. תהליכים המפוצלים או הנוצרים מהתהליך ההורה ידועים כ 'תהליכי ילד'. תהליך ההורה עשוי להכיל מספר תהליכי ילד כל אחד עם PID ייחודי (מזהה תהליך) אך שותפים לאותו PPID (מזהה תהליך ההורה).

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

מה ההבדל בין PID ל-PPID?

A program that is loaded into memory and running is known as a process. Once started, the process is given a unique number known as the process ID (PID) that uniquely identifies it in the system. The process can be referred to at any time using its PID. For example, to kill a process, you will have to know its PID first.

בנוסף ל-PID, כל תהליך מוקצה תהליך הורה ID (PPID) המצביע על איזה תהליך הכין אותו. לכן, PPID הוא PID של התהליך של ההורה.

כדי להכניס את זה לקשר, נניח שהתהליך 5 עם PID של 5050 מתחיל את התהליך 6. התהליך 6 יקבל מספר PID ייחודי כגון 6670, אך עדיין ייתן לו את PPID של 5050.

התהליך ההורה כאן הוא התהליך 5 והתהליך הילד הוא 6. התהליך הילד מקבל מספר ייחודי PID אך ה-PPID זהה ל-PID של התהליך ההורה (התהליך 5)

A single parent can start multiple several child processes, each with a unique PID but all sharing the same PPID.

מצא את מספר התהליך ההורה (PPID) ב-Linux

ישנן שתי גישות עיקריות למציאת PPID של תהליך פועל במערכת Linux:

  • באמצעות הפקודה pstree.
  • באמצעות הps command.

מצא מספר המחלקה ההורה של תהליך Linux באמצעות פקודת pstree

A pstree command is a command-line tool that displays running processes as a tree, which makes for a convenient way of displaying processes in a hierarchy. It shows the parent-child relationship in a tree hierarchy.

עם ה -p אפשרות, הpstree מציג את כל התהליכים ההורים המתנהלים יחד עם התהליכים הילדים המתאימים ומספרי ה-PID המתאימים.

$ pstree -p
Show Linux Running Processes in Tree Hierarchy

מתוך הפלט, אנו יכולים לראות את מספרי התהליכים ההורים יחד עם מספרי התהליכים הילדים.

להדגמה, אנו נבדוק את הPPID לMozilla Firefox יחד עם כל היררכיה של התהליכים באמצעות הפקודה הבאה:

$ pstree -p | grep 'firefox'
Find the PPID of the Linux Process

מהפלט, אפשר לראות שהPPID של Firefox הוא 3457 ושאר המספרים הם PIDs של תהליכים ילדים.

כדי להציג רק את הPPID של Firefox ולדלג על שאר הפלט, הזרק את הפלט לhead command עם -1 כדי להציג את השורה הראשונה.

$ pstree -p | grep 'firefox' | head -1
Print PPID of Linux Process

מצא מספר המחלקה ההורה של תהליך Linux באמצעות פקודת ps

האפשרות האחרת למציאת ה-PPID של תהליך היא ה-פקודת ps, שהיא פקודה נפוצה במיוחד המציגה את ה-תהליכים המתנהלים כרגע במערכת Linux.

כשמשתמשים באופציה -ef, ה-פקודת ps מציגה את כל התהליכים המתנהלים יחד עם פרטים כמו ה-UID, ה-PID, ה-PPID וכו'.

$ ps -ef
List Running Linux Processes with PID

כדי לצמצם ולהציג את ה-PPID של תהליך ספציפי, למשל, Firefox, עבור את האופציה -e והעבר את הפלט ל-פקודת grep כפי שמוצג.

$ ps -e | grep 'firefox'
Find Linux Process PID

שוב, מהפלט, אפשר לראות שה-PPID של Firefox הוא 3457.

במדריך זה הדגמנו איך אפשר למצוא את ה-PPIDs של תהליכים המתנהלים במערכת Linux. אפשר להשתמש באחת משתי האפשרויות – פקודת pstree או פקודת ps – כדי להגיע למטרה זו.

Source:
https://www.tecmint.com/find-parent-process-ppid/