概述
pgrep
命令是通过名称从运行进程队列中查找进程,并且显示查找到的进程ID。
如果我们想要查找正常运行的java进程(通常是tomcat进程),那么可以使用如下语句:
ps -ef | grep java | grep -v grep | gawk -n '{print $2}'
发现上面这个语句太长了,还需要去一步步解析提取我们需要的进程号,所以我们可以使用pgrep
命令来完成上述功能,只需要通过名称就能从运行进程队列中获取到对应的进程号:
pgrep java
总之,pgrep
命令简化了我们查找进程号的操作。
语法
pgrep
命令的基本语法如下:pgrep [选项] [参数]
。
常用选项如下:
选项 | 描述 |
---|---|
-o | 仅显示找到的最小(起始)进程号; |
-n | 仅显示找到的最大(结束)进程号; |
-l | 显示进程名称。 |
-P | 指定父进程号。等价于ps -ef 命令中的PPID 列。 |
-g | 指定进程组。 |
-t | 指定开启进程的终端。等价于ps -ef 命令中的TTY 列。 |
-u | 指定进程的有效用户ID。等价于ps -ef 命令中的UID 列。 |
参数就是进程名称,即指定要查找的进程名称,同时也支持类似grep指令中的匹配模式。
使用
查找java进程的进程号
pgrep java
# 652
查找ftp进程的进程号并显示名称
pgrep -l ftp
# 2034 sftp-server
查找以md开头并且结尾的进程
进程名称支持匹配模式,例如使用正则表达式匹配以md开头结尾的进程:
pgrep -l ^md$