Linux下如何查找父进程
在程序执行期间,内核会创建一个进程,帮助将程序的执行详细信息存储在系统内存中。当程序执行时,它就成为系统的一个进程。因此,我们可以说进程在执行之前就是一个程序。
由内核创建的进程称为“父进程”,所有从父进程派生的进程称为“子进程”。 ” 单个进程可能由多个具有唯一 PID 但具有相同 PPID 的子进程组成。
初学者可能会想到一个问题:PID和PPID有什么区别?
我们已经在大多数文章中讨论了PID,如果您是新用户,不用担心!
在Linux系统中,同时执行多个进程。有时,进程可能有单个线程(进程内的执行单元)或多个线程。进程有不同的状态;它们可能处于等待、就绪或运行状态。这完全取决于用户或内核如何确定它们的优先级。因此,这些进程由我们称为进程 ID (PID) 的唯一数字来标识。父进程的唯一编号称为 PPID,每个父进程可以有多个具有唯一进程 ID 的子进程。子进程的 PID 不同,因为它们代表不同的执行单元,但具有相同的父进程 ID (PPID)。
当子进程产生一些问题并且无法正常工作时,我们需要PPID。在这种情况下,它可能会影响其他进程的工作,并且系统也可能受到影响。这里,要停止持续运行的进程,需要杀死其父进程。
让我们检查一下如何找到 PPID:
如何在 Linux 中查找父进程 ID (PPID):
我们有几种方法来查找 Linux 系统中正在运行的进程的 PPID:
使用“pstree”命令
使用“ps”命令
如何在 Linux 中使用 pstree 命令查找 PPID:
“pstree”命令是识别父进程 ID (PPID) 的好方法,因为它显示了树形层次结构中的父子关系。
在终端中输入带有“-p”选项的简单“pstree”命令,检查它如何显示所有正在运行的父进程及其子进程和各自的 PID。
它显示父进程 ID 以及子进程 ID。
让我们看一下“Mozilla Firefox”的示例,以获取其 PPID 以及完整的进程层次结构。在终端中执行以下命令:
(grep是一个命令行工具,有助于搜索特定字符串)
在上述结果中,我们可以看到3528是进程“Firefox,”的PPID,其他都是子进程。
要在终端中仅打印父进程 ID,请运行上述命令:
如何使用 ps 命令查找 PPID:
“ps”命令实用程序是处理来自“/proc”文件系统的信息并监视它们的另一种方法。
通过该命令,用户还可以找到正在运行的进程的PPID和PID。
运行以下“ps”命令以及“ef”选项来显示进程的详细信息,包括PPID:
如果您想显示特定进程的PPID详细信息,请使用“grep”执行提到的“ps”命令:
(“-f”选项用于列出进程的详细信息)
要仅获取“Firefox,”的PPID,请使用以下语法:
因此,使用以下命令找到“firefox”的PPID:
结论:
每次执行程序时,内核都会创建一个进程,将执行详细信息加载到内存中。这个创建的进程称为具有单个或多个线程的父进程。每个进程都由内核自动分配唯一的PPID和PID。
在使用 Linux 系统时,应该了解正在运行的进程的PPID。子进程的问题可能会影响其他进程。在这种情况下,我们可能需要终止父进程。
可以使用多种方式识别正在运行的进程的PPID。最简单的方法是通过“ps”命令和“pstree”命令。
上面我们已经看到如何使用这两个命令工具找到特定进程的 PPID。