linux查看进程pgrep,查看进程PID专用工具-------pgrep

article/2025/10/25 6:40:40

一、Linux命令pgrep简单介绍

pgrep是linux中常用的通过程序名称来查询进程的工具,一般是用来判断程序是否正在运行及查找正在运行进程的PID信息。通过pgrep命令,可以只指定进程的一部分名称从运行进程队列中进行查看进程的PID信息,但只输出PID号,不便于理解。可以结合‘-l’选项在显示PID的同时也显示这个进程的名称。

1、用法:

pgrep [options]

2、主要选项

-l,--list-name:列出进程名称和进程ID

-o,--oldest:仅显示最小(最早启动的进程)进程号

-n,--newest:仅显示最大(最新启动的进程)进程号

-u,--euid euid:仅列出有效用户相关的进程ID号

-U,- uid:仅匹配列出实际用户ID的进程

-P(大写),--parent ppid:仅列出父进程ID的子进程号

-x,--exact(精确):与进程中的命令名称精确匹配

-d,--delimiter(分隔符) :指定每个进程ID间的分隔符(默认为换行符)

-a,--list-full:列表显示进程的PID和进程所对应的程序以及运行时所带的参数。

-t,--terminal 【tty1】|【pts/0】:只显示指定控制终端下列出的进程ID。指定终端名称时没有“/ dev /”前缀。

不常用

-c:列出指定进程的个数。

-v,--inverse(反向):反向匹配。匹配所有的进程除了符合匹配条件的。这个选项通常用在pgrep的上下文中。

二、pgrep 命令常见用法

下面举几个例子验证各选项的用法,如下:

1、查看系统日志程序rsyslogd的PID信息

如果记不住系统日志程序的名称,可以只输入程序命令名称的一部分,pgrep命令可以根据指定进程的一部分名称从运行进程队列中进行查询,并将所有包含的指定部分的进程名称信息的PID都列出来。如下图:

3f9e7c04b18dd57135d822681d09c326.png

结合‘-l’选项显示PID的同时也显示这个进程的命令名称。

64a806ca358a621b56901be688a32bff.png

2、显示祖宗进程(Linux系统第一个启动的进程)的ID号和进程名

在Linux操作系统开机引导过程中,在内核加载完成后,内核会首先将第一个程序systemd加载到内存运行(在centos 6中是init),并由它完成一系列系统初始化的过程。所以,systemd进程对应的PID为1。

需要用到‘-o’ 选项,如下

e193b7bf82c5cd5e2d7f45938d48e56b.png

当某个服务是多进程的服务时,‘-o’选项后面也可以指定此服务名称来显示最小进程号,

例如:

显示远程服务sshd的最小进程号

617358fda64ce4d0c314e1759c14418e.png

3、显示最近(最大的)启动的进程的ID号和进程名

与‘-o’选项功能相反,‘-n’ 选项功能是查询最新启动的进程ID,用法如下

86c39a62e343ee1a0d00e162a1285e72.png

‘-n’选项后面也可以指定服务名称,来显示最大进程号。

例如:

显示远程服务ssh的最大进程号

71dbe769c24543c8e4b489ffeb4c36a3.png

4、根据用户名列出进程ID,可以使用‘-u’选项来查看

【1】列出所有跟tom用户有关的进程ID

483057e8959a5cedf6be4c1b0e920f89.png

【2】仅查看用户tom启动的top服务进程ID和名称

78745458a971efbf2aad762fb42c8904.png

也可以使用‘-U’选项查询有关tom用户的进程信息,用法跟‘-u’选项相同,不做过多介绍。

5、查询web服务进程下的子进程PID信息

5ff50d0ae331c1582d102355d3739e0d.png

如上图,一般来说某个服务的父进程的PID总是小于其子进程的PID,‘-P’选项后面跟父进程PID(不是进程名称),例如,如果不知道httpd服务父进程的PID怎么办?可以结合前面的‘-o’选项查询httpd服务的最小进程号。

6、精确查询系统日志服务进程名称PID信息,可以使用‘-x’选项

04f00a803b88ffef519cfd91f362ea59.png

看见了吧,需要输入完整的进程名称才能从cmd字段列表中进行匹配显示PID信息,是因为-x选项功能进行精确匹配输入的进程名称,而且同时只能查询一个程序ID,一般可以用在脚本里面。

7、分别以空格和分号输出Apache服务的进程ID号。

1233a65a73d2dc19f34ddf858519704f.png

上面几个示例都是纵向输出每个进程的ID号,即每个进程ID间的分隔符默认为换行符,若想横向显示需要‘-d’选项,并指定输出分割符,除了逗号外,使用其他分割符,需将分隔符放入引号内。

8、查询ping进程所对应的程序以及运行时所带的参数。

1c8ce62ddd24a95ab9c4303eb499449d.png

‘-a’选项功能匹配的是cmd字段,不仅可以显示执行命令的PID号,还可以完整的显示进程所对应的程序以及运行时所带的参数,而‘-l’仅显示进程的简称,‘-a’显示的字段内容要比使用‘-l’选项多一些。

9、查询第4个虚拟网络中端下的进程ID信息(从0开始),可以用‘-t’选项指定开启进程的终端

f4dcf252f46f4d21d6ce482f699d7e49.png

可以看到,在第4虚拟终端下,运行了两个进程,一个是提供了用户与内核进行交互操作的一种接口----命令解释器bash,另一个是正在执行yum安装程序的进程。若想了解其他用户在Linux上当前执行什么操作,通过-t选项可以查询指定中端下的子孙进程ID及执行命令。

以下两项例子做为了解即可

10、查看httpd服务启动的进程数量

a7fdd30933e9c2d88685b6ea75a71d0a.png

11、显示所有跟root用户无关的所有进程

[root@centos7 ~]# pgrep -avu root

a39b4f6e78c3085d8f769d58bdb32b45.png

综合使用:仅查询httpd进程的子进程详细信息(不包含父进程)

[root@centos7 ~]# ps -fp `pgrep -P $(pgrep -o httpd)`

956c3619cdee18fd4a18bcad4df8b707.png

以上是pgrep命令基本选项的使用,pgrep命令通常会和kill或pkill结合起来使用,由pgrep命令找出有问题的进程PID,由kill或pkill来杀掉有问题的进程是很容易的。


http://chatgpt.dhexx.cn/article/rC6SlWf0.shtml

相关文章

linux shell pgrep命令使用方法(pgrep指令)获取进程号、统计进程数量(学会区分Linux进程进程名)

文章目录 问题背景pgrep指令help文档使用示例1. 列出匹配进程的PID和进程名称(-l)(默认只能从进程名的子集字符串匹配,如果要使用完整进程名的子集字符串匹配,请加-f参数,下同)2. 列出匹配进程的…

pgrep

Pgrep 用于根据进程的name查找进程的pid。例如:

Linux pgrep命令

1 pgrep pgrep是一个根据名称查找进程ID的命令,返回的是进程ID,若存在当个进程,则分为不同的行返回ID(默认实现)。 2 示例 查找java进程: pgrep java上图还显示了ps与pgrep的区别,简单来说&…

【笔记11】个人扫盲:内存与CPU中的核、线程、物理CPU、逻辑CPU

文章目录 CPU与内存CPU内存什么是通道常见问题 物理CPU和逻辑CPU常见问题LINUX查看WINDOW查看 CPU与内存 CPU CPU(Central Processing Unit)即中央处理器。CPU从内存(Memory)或缓存(Cache)中取出指令&…

Linux下区分物理CPU、逻辑CPU和CPU核数

一、概念 ① 物理CPU 实际Server中插槽上的CPU个数 物理cpu数量,可以数不重复的 physical id 有几个 ② 逻辑CPU Linux用户对 /proc/cpuinfo 这个文件肯定不陌生. 它是…

记录一个有意思的cpu逻辑cpu核数问题(已解决)

top命令查看逻辑cpu个数的时候发现只有20个 实际上服务器的的逻辑cpu个数是32个 物理cpu核数 PS:该问题也存在于部分新旧服务器上,网上没找到答案,特此记录。希望未来可以得到答案。 2021年09月27日更新 目前认为最近用到了多少cpu核数就显…

物理CPU,物理CPU内核,逻辑CPU概念详解

1.说明 CPU(Central Processing Unit)是中央处理单元, 本文介绍物理CPU,物理CPU内核,逻辑CPU, 以及他们三者之间的关系, 一个物理CPU可以有1个或者多个物理内核, 一个物理内核可以作为1个或者2个逻辑CPU。 …

Linux下区分物理CPU、逻辑CPU、CPU核数、线程数以及查看命令

概念 ① 物理CPU 实际服务器中插槽上的CPU个数 是指物理上,也就是硬件上存在着几颗物理cpu,指的是真实存在是cpu处理器的个数,1个代表一颗,2个代表2颗cpu处理器。 物理cpu数量,可以数不重复的 physical id 有几个 ② 逻辑CPU Lin…

linux服务器的物理CPU,CPU核数,逻辑CPU及Hadoop的Vcore

linux服务器的物理CPU,CPU核数,逻辑CPU及Hadoop的Vcore 1、Linux服务器的核数的概念 物理CPU: 服务器上真实存在的CPU,可以看到 CPU的核 (core): 一个CPU上包含多少核(core),真实存在但不能直接看到 总核数…

CPU 主频,核数 参数解读 物理CPU,逻辑CPU,物理核 概念辨析

Q1: CPU高主频好还是多核数好? 游戏需求 如果是主打游戏,由于游戏需要的是最简单粗暴的计算工作,这方面多核心有点无用武之地。因此,目前主流游戏都是双核心调用,四核或者更多核心的比较少。 也就是说&…

物理CPU-Core-逻辑CPU -超线程

原文地址: http://www.daniloaz.com/en/differences-between-physical-cpu-vs-logical-cpu-vs-core-vs-thread-vs-socket/ 水平所限,翻译不准确的地方望指正。 当我们使用像 nproc或者 lscpu等命令 来在CPU级别上获取计算机的架构和性能的时候&#xf…

【Pytorch】物理cpu、逻辑cpu、cpu核数、pytorch线程数设置

上周末写ddp,常常遇到中途退出的问题,解决中途遇到了很多CPU线程数和核心数的问题,记录如下 1. 物理cpu、逻辑cpu、cpu核数、超线程 这一部分主要来自什么是物理cpu,什么是逻辑cpu,什么cpu核数,什么是超线…

Linux下关于物理CPU、逻辑CPU和CPU核数、超线程

1、概念 (1) 【物理CPU数】 :实际Server中插槽上的CPU个数,物理cpu数量可以数不重复的 physical id 有几个 (physical id) (2) 【CPU核数】:单块CPU上面能处理数据的芯…

物理CPU,CPU核数,逻辑CPU

CPU概念 物理CPU 在Info中由physical id识别 物理CPU指的是实际主板上插槽上的CPU个数。physical id 就是每个物理CPU的ID,不重复的 physical id 有几个,物理cpu数量就是几个。 CPU核数(物理核) 在Info中由 cpu cores 识别 CPU核…

物理cpu数,逻辑cpu数,cpu核数

一、物理CPU数 机器的主板上实际插入插槽的CPU个数。 二、CPU核数 单块CPU上面集成一个或者多个处理器芯片(称为Core,核心)。 CPU最初发展的时候是一个CPU一个处理核心,CPU的性能主要靠提高核心工作频率来提高,但是仅仅提高单核芯片的速度…

物理cpu数和cpu核数和逻辑cpu数和vcpu区别

物理cpu数和cpu核数和逻辑cpu数和vcpu区别1.物理cpu数:主板上实际插入的cpu数量,可以数不重复的 physical id 有几个(physical id) 2.cpu核数:单块CPU上面能处理数据的芯片组的数量,如双核、四核等 &#…

CPU相关概念:物理cpu数、核数、逻辑cpu数,12核20线程实例分析

文章目录 0. 写此篇博客的原因1. 物理CPU,核,逻辑CPU概念1.1 内核工作方式1.2 超线程1.3 什么是大小核 2. CPU信息的查询方法2.1 Windows下查询CPU信息的方法2.2 Linux下查询CPU信息的方法方法一:lscpu 整体查看方法二:分别查看 3…

Linux系统下物理CPU和逻辑CPU的区别

01、问题 最近在搞Linux下性能评测,在做CPU评测时发现了个有意思的现象,因为uos系统是自带系统监视器的,在对输入法进程检测时,发现其CPU占用率为1%: 但是我用top命令查询时却发现它的CPU占用率为4%! 这是…

理解物理 CPU 与逻辑 CPU

这是一篇有关物理和逻辑 CPU 实际含义以及它们之间有何差异的速写文章。 首先,CPU 这个术语在互联网上的使用非常的模糊和不严谨,常用来指处理器(Processor)、核心(Cores)或硬件线程(Hardware …

【cpu概念】物理cpu个数、核数、逻辑cpu数的概念

首先要明确物理cpu个数、核数、逻辑cpu数的概念 1.物理cpu数:主板上实际插入的cpu数量,可以数不重复的 physical id 有几个(physical id) 2.cpu核数:单块CPU上面能处理数据的芯片组的数量,如双核、四核等 …