Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。本文主要介绍Linux pgrep 命令。

1、命令简介

pgrep:用于查找正在运行的进程的 Linux 命令。它根据指定的条件(通常是进程的名称或其他属性)查找匹配的进程,并返回它们的进程 ID(PID)。

2、命令语法

pgrep [-flvx] [-d delimiter] [-n|-o] [-P ppid,...] [-g pgrp,...]
        [-s sid,...] [-u euid,...] [-U uid,...] [-G gid,...]
        [-t term,...] [pattern]
pkill [-signal] [-fvx] [-n|-o] [-P ppid,...] [-g pgrp,...]
        [-s sid,...] [-u euid,...] [-U uid,...] [-G gid,...]
        [-t term,...] [pattern]

3、命令描述

pgrep会查找当前运行的进程,并将符合选择条件的进程的进程ID输出到标准输出。所有的条件都必须匹配。如,pgrep -u root sshd 只会列出名称为sshd且属于root的进程。另一方面,pgrep -u root,daemon 会列出属于rootdaemon的进程。

pkill 会向每个进程发送指定的信号(默认为SIGTERM),而不是将它们列出到标准输出。

4、命令选项

选项

描述

-d

设置用于在输出中分隔每个进程ID的字符串

(默认为换行符)。 (仅适用于pgrep)。

-f

通常只匹配进程名称的模式。

启用 -f 后,将使用完整的命令行。

-g pgrp,...

仅匹配列出的进程组ID中的进程。

进程组0被翻译为pgrep或pkill自己的进程组。

-G gid,...

仅匹配其真实组ID在列表中的进程。

可以使用数字或符号值。

-l

列出进程名称以及进程ID。 (仅适用于pgrep)。

-n

仅选择匹配进程中最新(最近启动)的进程。

-o

仅选择匹配进程中最旧(最近启动)的进程。

-P ppid,...

仅匹配其父进程ID在列表中的进程。

-s sid,...

仅匹配其进程会话ID在列表中的进程。

会话ID0被翻译为pgrep或pkill自己的会话ID。

-t term,...

仅匹配其控制终端在列表中的进程。

终端名称应指定为不带“/dev/”前缀的名称。

-u euid,...

仅匹配其有效用户ID在列表中的进程。

可以使用数字或符号值。

-U uid,...

仅匹配其真实用户ID在列表中的进程。

可以使用数字或符号值。

-v

反转匹配。

-x

仅匹配名称(或如果指定了 -f,则为命令行)

与模式完全匹配的进程。

-signal

定义要发送到每个匹配进程的信号。

可以使用数字或符号信号名称。 (仅适用于pkill)。

5、使用示例

1)查找进程名为“nginx”的进程ID:

pgrep nginx

2)查找进程名中包含“mysql”的进程ID:

pgrep mysql

3)查找指定用户运行的进程名为“nginx”的进程ID:

pgrep -u root nginx

4)查找指定用户运行的所有进程ID:

pgrep -u root

5)查找指定命令行参数的进程ID:

pgrep -f "command"

6)显示与指定进程名匹配的进程数:

pgrep -c "process"

7)杀死与指定进程名匹配的进程:

pkill "process"

推荐文档