上一篇                     
               
			  Linux命令如何查询进程组ID
- Linux
- 2025-06-26
- 2629
 在Linux中查看进程组信息,主要使用
 
 
ps命令:,1. 使用 
 ps -ejH 以树状结构显示进程层级,包含进程组ID(PGID)。,2. 使用 
 ps -o pid,pgid,cmd 直接列出进程ID、组ID及命令,清晰查看分组关系。
在Linux系统中,进程组(Process Group)是一组相关联进程的集合,通常由同一个父进程创建,用于实现作业控制(如终端信号的分发),查看进程组有助于分析进程间的协作关系、资源分配或排查问题,以下是几种专业且实用的查看方法:
使用 ps 命令
 
ps 是最常用的进程查看工具,通过添加特定参数可显示进程组信息。
命令示例: 
ps -eo pid,pgid,ppid,comm,args --sort pgid
参数解析:
- -eo:自定义输出列(- pid=进程ID,- pgid=进程组ID,- ppid=父进程ID,- comm=命令名,- args=完整命令)。
- --sort pgid:按进程组ID排序。
输出示例:
PID PGID PPID COMMAND ARGS 1234 1234 5678 bash /bin/bash 5678 1234 9012 node /usr/bin/node app.js
说明:
- 同一进程组(PGID相同)的进程属于同一组。
- 进程组ID通常等于组内第一个进程(组长进程)的PID。
结合 pstree 查看层级关系
 
pstree 以树形结构展示进程关系,直观体现进程组嵌套。
命令示例: 
pstree -g -p
参数解析:

- -g:显示进程组ID(PGID)。
- -p:显示进程PID。
输出示例:
systemd(1)─┬─sshd(1234,1234)───bash(5678,1234)───node(9012,1234)
           └─crond(4321,4321) 
说明:
- 括号内格式为 (PID, PGID)。
- 此例中 sshd、bash、node同属PGID1234,crond独立成组(PGID=4321)。
查看 /proc 文件系统
 
Linux的 /proc 目录存储实时进程信息,直接读取文件获取原始数据。
操作步骤: 
cat /proc/<PID>/status | grep -i pgid
示例(查看PID为5678的进程组ID):
cat /proc/5678/status | grep -i pgid
输出:

NSpgid: 1234 # 进程组ID
说明:
- 需替换 <PID>为目标进程的实际ID。
- 适合脚本自动化处理,但需手动定位进程。
使用 pgrep 检索特定进程组
 
通过进程名反向查找组内所有成员。
命令示例: 
pgrep -g <PGID> -l
示例(查找PGID=1234的所有进程):
pgrep -g 1234 -l
输出:
5678 bash 9012 node
说明:

- -l显示进程名,省略则仅输出PID。
- 需提前知道目标PGID(可通过 ps获取)。
终端会话组:ps 结合 tty
 
针对终端关联的进程组(如SSH会话),筛选特定终端:
ps -t tty1 -o pid,pgid,comm
输出:
PID PGID COMMAND 5678 1234 bash 9012 1234 node
说明:
- -t tty1指定终端设备(通过- who或- tty命令查看当前终端)。
应用场景与建议
- 快速概览:优先使用 ps --sort pgid或pstree -g。
- 精准检索:已知PGID时用 pgrep -g。
- 脚本处理:读取 /proc/<PID>/status。
- 权限要求:普通用户可查看自身进程,root可查看系统所有进程组。
安全提示:
- 操作生产环境前,建议在测试环境验证命令。
- 避免随意终止进程组(如
kill -9 -<PGID>),可能导致服务异常。
引用说明:
- Linux man手册(命令原生文档):man ps,man pstree,man proc。
- 符合POSIX标准进程管理规范(IEEE Std 1003.1)。
- 基于Linux内核5.0+版本验证(/proc文件系统结构)。
 
  
			 
			 
			 
			 
			 
			 
			 
			