如何在 Linux 中查找父進程 PPID
內核創(chuàng)建的進程稱為“父進程”。從父進程派生或產生的進程稱為“子進程”。父進程可能由多個子進程組成,每個子進程都具有唯一的PID(進程 ID)但共享相同的 PPID。
在本指南中,我們探討了可用于查找 Linux 系統(tǒng)上的父進程 ID (PPID) 或進程的各種方法。
PID 和 PPID 有什么區(qū)別?
加載到內存中并運行的程序稱為進程。一旦啟動,進程將獲得一個唯一編號,稱為進程 ID ( PID ),在系統(tǒng)中唯一標識它??梢噪S時使用其PID引用該進程。例如,要終止一個進程,您必須先知道它的PID。
除了PID之外,每個進程還被分配了一個父進程ID ( PPID ),顯示是哪個進程生成了它。因此,PPID是進程父進程的PID。
為了說明這一點,我們假設PID為5050的進程5啟動進程6。進程 6 將被分配一個唯一的PID,例如6670,但仍將被分配PPID 5050。
這里的父進程是進程5,子進程是6。子進程被分配了一個唯一的PID但PPID與父進程的 PID 相同(進程 5)
單個父進程可以啟動多個子進程,每個子進程都有唯一的 PID 但都共享相同的PPID。
在 Linux 中查找父進程 ID (PPID)
在 Linux 系統(tǒng)上查找正在運行的進程的PPID有兩種主要方法:
- 使用 pstree 命令。
- 使用 ps 命令。
使用 pstree 命令查找 Linux 進程 PPID
pstree命令是一種命令行工具,它以樹的形式顯示正在運行的進程,這使得在層次結構中顯示進程成為一種方便的方式。它以樹狀層次結構顯示父子關系。
通過該 -p選項,pstree顯示所有正在運行的父進程及其相應的子進程和各自的 PID。
在樹層次結構中顯示 Linux 正在運行的進程
從輸出中,我們可以看到父進程 ID 和子進程 ID。
為了演示,我們將使用以下命令檢查 Mozilla Firefox 的 PPID 以及整個進程層次結構:
查找 Linux 進程的 PPID
從輸出中可以看出 Firefox 的PPID 為 21401,其余為子進程的PID。
要僅顯示 Firefox 的PPID并跳過其余輸出,請將輸出通過管道傳遞給 head 命令以-1顯示第一行。
打印 Linux 進程的 PPID
使用 ps 命令查找 Linux 進程 PPID
查找進程PPID的另一個選項是 ps 命令,這是一個廣泛使用的命令,用于顯示Linux 系統(tǒng)上當前正在運行的進程。
當與該-ef選項一起使用時,ps 命令會列出所有正在運行的進程及其詳細信息,例如UID、PID、PPID等。
使用 PID 列出正在運行的 Linux 進程
要縮小范圍并顯示特定進程的PPID,例如Firefox,請傳遞-e?選項并將輸出通過管道傳遞給 grep 命令,如圖所示:
查找 Linux 進程 PID
再一次,從輸出中,您可以看到 Firefox 的 PPID 是 21401。
在本指南中,我們演示了如何在 Linux 系統(tǒng)上找到運行的進程的 PPID。您可以使用 pstree 命令或 ps 命令來達到相同的目標。