pgrep命令以名称为依据从运行进程队列中查找进程
,并显示查找到的进程id。每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认的分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合。
pgrep命令相当于如下的命令,且一般配合着pkill操作使用!
ps -eo pid,cmd | awk '{print $1,$2}' | grep
格式:
pgrep (选项) (参数)
常用命令选项
-d, --delimiter <string> 指定输出分隔符
-l, --list-name 列出PID和进程名
-a, --list-full 列出PID和完整的命令行
-v, --inverse 否定匹配
-w, --lightweight 列出所有TID
-c, --count 匹配过程计数
-f, --full 用完整进程名进行匹配
-g, --pgroup <PGID,...> 使用完整进程名进行匹配
-G, --group <GID,...> 匹配真实的组id
-n, --newest 仅显示找到的最大(结束)进程号
-o, --oldest 仅显示找到的最小(起始)进程号
-P, --parent <PPID,...> 只匹配给定父进程的子进程(指定父进程)
-s, --session <SID,...> 匹配会话ID
-t, --terminal <tty,...> 控制终端匹配
-u, --euid <ID,...> 有效id匹配(选择进程拥有者时,默认匹配规则是逻辑与的关系)
-U, --uid <ID,...> 真实id匹配
-x, --exact 与命令名完全匹配
-F, --pidfile <file> read PIDs from file
-L, --logpidfile 从文件读取pid
--ns <PID> 匹配与<pid>属于同一命名空间的进程
--nslist <ns,...> 列出--ns选项将考虑哪些名称空间。可用的命名空间:ipc、mnt、net、pid、user、uts
-h, --help 显示此帮助并退出
-V, --version 输出版本信息并退出
--signal signal 定义发送给每个匹配进程的信号。 数字或符号信号名称都可以使用(仅限pkill)
参数
进程名称:指定要查找的进程名称,同时也支持类似grep指令中的匹配模式。
参考实例:
[root@master ~]# pgrep docker
18215
[root@master ~]# ps -ef | grep docker
root 18215 1 7 16:13 ? 00:00:10 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
# pgrep, pkill, pidwait - 根据名称和其他属性查找、发送信号或等待进程
Example 1: 查找命名守护进程的进程ID: $ pgrep -u root named
Example 2: 让系统日志重新读取其配置文件: $ pkill -HUP syslogd
Example 3: 提供所有xterm流程的详细信息: $ ps -fp $(pgrep -d, -x xterm)
Example 4: 让所有chrome进程运行得更好: $ renice +4 $(pgrep chrome)
Example 5: 将只列出root用户拥有的名为sshd的进程: $ pgrep -u root sshd
Example 6: 将列出root或守护进程所拥有的进程: $ pgrep -u root,daemon
pkill将向每个进程发送指定的信号(默认情况下是SIGTERM),而不是在stdout上列出它们。
pidwait将等待每个进程,而不是列出它们 stdout。
If you have a dream, you must be brave for him.