如何在 Linux 中查找父进程 [子进程] PPID
每次执行程序时,内核都会创建一个与该程序关联的进程。简单的说,进程就是Linux中一个程序的运行实例。
内核创建的进程称为“父进程”。从父进程派生或产生的进程称为“子进程”。父进程可能由多个子进程组成,每个子进程都具有唯一的 PID (Process ID) 但共享相同的 PPID。
您可能还喜欢:
- 关于 Linux 进程你需要知道的一切 [综合指南]
- Linux 中的 16 个顶级命令示例 [监控 Linux 进程]
- 如何使用 Kill、Pkill 和 Killall 杀死 Linux 进程
- 如何在 Linux 中使用 PID 号查找进程名称
- 在 Linux 中按最高内存和 CPU 使用率查找运行最频繁的进程
在本指南中,我们探讨了可用于查找 Linux 系统上的父进程 ID (PPID) 或进程的各种方法。
PID 和 PPID 有什么区别?
加载到内存中并运行的程序称为进程。一旦启动,进程就会获得一个唯一编号,称为进程 ID (PID),用于在系统中唯一标识它。可以随时使用其 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 系统上查找正在运行的进程的 PPID 有两种主要方法:
- 使用 pstree 命令。
- 使用 ps 命令。
使用 pstree 命令查找 Linux 进程 PPID
pstree 命令是一种命令行工具,可将正在运行的进程显示为树状结构,从而为以层次结构显示进程提供了一种便捷的方式。它以树状层次结构显示父子关系。
使用 -p
选项,pstree 显示所有正在运行的父进程及其相应的子进程和各自的 PID。
$ pstree -p

从输出中,我们可以看到父进程 ID 和子进程 ID。
为了演示,我们将使用以下命令检查 Mozilla Firefox 的 PPID 以及整个进程层次结构:
$ pstree -p | grep 'firefox'

从输出结果可以看出,Firefox的PPID为3457,其余为子进程的PID .
要仅显示 Firefox 的 PPID 并跳过其余输出,请使用 -1
将输出通过管道传输到 head 命令以显示第一行。
$ pstree -p | grep 'firefox' | head -1

使用 ps 命令查找 Linux 进程 PPID
查找进程的 PPID 的另一个选项是 Linux 系统上当前正在运行的进程。
当与 -ef
选项一起使用时,ps 命令 列出所有正在运行的进程及其详细信息,例如 UID、PID 、PPID等
$ ps -ef

要缩小范围并显示特定进程的 PPID,例如 Firefox,请传递 -e
选项并将输出通过管道传输到grep 命令如图所示。
$ ps -e | grep 'firefox'

再一次,从输出中,您可以看到 Firefox 的 PPID 是 3457。
在本指南中,我们演示了如何找到在 Linux 系统上运行的进程的 PPID。您可以使用 pstree 命令或 ps 命令 来达到相同的目标。