如何在Linux中查找进程的PID和PPID

 2024-02-28 05:03:43  阅读 0

在Linux系统中,了解进程的PID和PPID对于管理系统上运行的进程非常有用。 目前有多种方法可以获取给定进程的 PID (ID) 和 PPID (ID)。

命令

介绍

皮多夫

根据进程名获取PID

正则表达式

返回所有匹配关键字的PID

ps -o ppid= -p PID

根据PID获取PPID

$$

当前进程的PID(shell)

${PPID}

当前进程的父进程的PID

本文详细解释了这些命令。 但在此之前,让我们先简单了解一下进程、PID 和 PPID。

Linux 进程基础知识

系统中的所有程序都是通过进程来运行的,进程是程序的运行实例。 所有这些进程都被分配了标识符,用于标记进程。 如果您想要监视进程(例如查看它使用了多少内存或 CPU),或者想要终止该进程,这些标识符非常有用。

这里所说的标识符是指PID和PPID。

什么是PID?

PID 代表进程 ID (ID)。 程序开始运行时会生成相应的PID。 如果我们想要与进程交互,PID是无法避免的。

什么是 PPID?

PPID 与 PID 密切相关,代表父进程 ID(ID)。 换句话说,它是已创建进程的进程 ID。

例如,如果我们有两个进程,其中一个进程名为 email,进程 ID(PID)为 7234; 第二个进程名为 email,进程 ID (PID) 为 7456。该进程启动了 email,因此对于进程 email,PID 为 7456,PPID 为 7234。

至此我们应该对进程有了基本的了解,那么我们就来看看如何获​​取进程ID。

获取进程的PID

要获取进程的PID,首先我们需要知道进程名称。 要根据进程名称获取进程ID,可以使用pidof命令:

pidof exact_process_name

有时我们可能不知道进程的确切名称,所以只要知道进程名称的前几个字母就可以了。 在这种情况下,我们需要使用tab键。 首先输入进程名称的前几个字符,然后点击tab键,系统会给我们几种可能的匹配建议。

linux取进程号_linux获取进程名称_linux 获取进程名

这里需要注意的是,我们需要清楚地知道进程名的前几个字符,否则这个方法不起作用。 例如,在Linux系统中,Edge浏览器的进程名并不是以edge开头,所以如果我们输入edge然后点击tab键是不行的。

因此,这时候我们需要使用ps命令列出所有正在运行的进程,然后使用grep来过滤结果。

ps aux | grep -i partial_process_name

另外,还有一个结合了ps和grep的特点的命令,叫做pgrep。

pgrep partial_or_exact_process_name

如上图所示,这个输出只有PID,没有其他进程信息。 因此,如果您的搜索关键字返回多个进程 ID,则无法判断您实际要查找的是哪一个。

因此,我们可以使用list函数来获取我们需要的进程ID,通过使用-l选项:

pgrep -l partial_or_exact_process_name

linux取进程号_linux获取进程名称_linux 获取进程名

另外,还可以使用top命令获取进程信息,但不能在脚本中使用。

注意:我们还可以使用命令来获取系统中所有正在运行的进程的PID:-p -a

通过子进程的PID获取PPID

如果我们知道进程的PID,我们就可以轻松获得PPID。 使用以下命令:

ps -o ppid= -p PID

在 shell 中,上述命令返回与 ${PPID} 相同的内容:

linux取进程号_linux 获取进程名_linux获取进程名称

标签: 进程 获取 命令

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码