艾巴生活网

您现在的位置是:主页>资讯 >内容

资讯

如何使用pidof或pgrep查找Linux进程的PID

2023-10-20 08:59:24资讯传统的飞鸟
使用Linux 进程通常意味着要了解其进程 ID(PID)。它是为每个正在运行的软件分配的唯一编号。这里有两种方法可以找出它是什么。什么是 Li

使用Linux 进程通常意味着要了解其进程 ID(PID)。它是为每个正在运行的软件分配的唯一编号。这里有两种方法可以找出它是什么。

如何使用pidof或pgrep查找Linux进程的PID

什么是 Linux 进程 ID?

在内部,Linux 通过分配一个唯一的 ID 号(称为进程 ID 或 PID)来跟踪其正在运行的进程。每个正在运行的应用程序、实用程序和守护程序都有一个 PID。

PID 是简单的整数值。新启动的进程将收到比上一个发出的 PID 高 1 的 PID。因此,具有最高 PID 的进程是最新(即最近)启动的进程。这一直持续到系统达到 PID 的最大值。

PID 的上限是 32768。一旦达到该数字,Linux 将返回到起点并查找已释放的 PID,因为之前拥有它的进程已终止。

PID为1的进程是Linux启动时第一个启动的进程。在基于 systemd 的系统上,这将是systemd. 在其他系统上也可能如此init,尽管某些 Linux 发行版使用OpenRc或s6等替代方案。

有时发现进程的 PID 很有用,通常是因为您想对该进程执行某些操作。当您知道进程名称时,这里有两种不同的方法来查找进程的 PID。

该pidof命令可以被认为是“PID”和“of”的组合。这就好比问这个进程的PID是多少?如果我们使用不带参数的命令,它不会执行任何操作。它会默默地将您返回到命令提示符。我们需要指定一个进程名称。

pidof告诉我们 Bash shell 的 PID 是 8304。我们可以使用ps命令验证这一点。我们需要做的就是ps不带参数调用。它将报告当前会话中正在运行的进程。

因为ps报告了它可以找到的所有进程(其中包括其自身),所以它告诉我们有一个bash进程和一个ps正在运行的进程。正如我们所期望的,该bash进程具有与报告的相同的 PID pidof。

如果您打开了多个终端窗口,pidof则会报告所有窗口。

pidof 报告匹配进程的多个实例

请注意,PID 按从最高到最低的顺序列出,换句话说,从最新到最旧的顺序列出。

这并没有表明您可能不是所有这些进程的所有者。pidof查找具有匹配名称的所有进程,无论它们的所有者是谁。让我们通过将输出管道传输到 来更深入地研究grep。我们使用-e(选择所有进程)和-f(完整列表)选项ps。