Linux怎么查看具体的进程通讯详情

轻伟姑娘_8011

轻伟姑娘_8011

2026-08-25

636人浏览

原创

ipcs -m -p -t 是确认共享内存使用者的最直接方法,显示 cpid(创建者 pid)、lpid(最后操作者 pid)及时间戳;需配合 ps 或 /proc/*/maps 进一步定位进程,且必须同时使用 -m 和 -p。

linux怎么查看具体的进程通讯详情

ipcs -m -p -t 能看到谁在用共享内存

想确认哪个进程正在读写某块共享内存,ipcs -m -p -t 是最直接的入口。它会显示每段共享内存的 cpid(创建者 PID)和 lpid(最后操作者 PID),以及最后 shmat/shmdt 的时间戳。

常见错误是只跑 ipcs -m 就停了,看不到进程关联;或者误以为 ipcs -m -i shmid 也能带出进程 ID —— 实际上不加 -p 就不会输出 PID 列。

  • ipcs -m -p 必须和 -m 同时出现,单独 -p 无效
  • 输出中的 cpid 和 lpid 是十进制整数,可直接传给 ps -p <pid> -o pid,comm,args</pid> 查进程名和命令行
  • 如果 lpid 是 0,说明近期无进程操作过该段(但可能仍被附加着)

grep shm /proc/*/maps 定位映射关系

System V 共享内存(shmget 创建的)在 /proc/<pid>/maps</pid> 中表现为 shmid=0xXXXX 格式;POSIX 共享内存(shm_open)则显示为 /dev/shm/xxx。这是绕过 ipcs、从进程侧反查的可靠方式。

容易忽略的是权限问题:grep 遍历 /proc/*/maps 时,非 root 用户会遇到 “Permission denied”,导致漏掉部分进程。建议用 sudo 执行,或限定范围如 grep shm /proc/[1-9]*/maps 2>/dev/null。

linux-sysadmin
linux-sysadmin

Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...

下载
  • 匹配到 shmid=0x1234 后,可用 ipcs -m | grep 0x1234 反查对应 shmid
  • /dev/shm/ 下的文件属于 POSIX IPC,ipcs 默认不显示,得用 ls /dev/shm 单独看
  • 同一进程可能同时映射多个共享内存段,maps 文件里会有多行含 shm

ipcs -q -p 查消息队列的收发方

消息队列的通信细节比共享内存更动态:ipcs -q -p 显示的是 cuid(创建者 UID)、lspid(最后 msgsnd 进程 PID)、lrpid(最后 msgrcv 进程 PID)。这三者能拼出“谁发、谁收”的基本链路。

注意 lspid 和 lrpid 是瞬时值,如果队列空闲,它们可能长期不变;而 ipcs -q -t 的时间戳字段更能反映活跃度——last-msgsnd 和 last-msgrcv 时间差过大,说明收发逻辑可能卡住或失配。

  • 若 lspid 或 lrpid 为 0,不代表没进程,只是该操作尚未发生
  • ipcs -q -i qid 不显示收发 PID,必须加 -p
  • 消息队列没有 “nattch” 类似字段,无法直接看出当前有多少进程在监听,得靠 ps 结合业务逻辑推断

ipcs -l 和 ipcs -u 揭示资源瓶颈

很多 IPC 通信异常(如 shmget: No space left on device)不是进程 bug,而是内核限制触顶。ipcs -l 显示硬限制(如最大共享内存段数、单段最大字节数),ipcs -u 显示当前已用数量。两者一对照,立刻知道是真满还是假满。

一个典型陷阱:修改 /proc/sys/kernel/shmall 后忘了同步改 shmmax,结果 ipcs -l 里 “max size of shared memory segment” 还卡在旧值,新程序依然分配失败。

  • ipcs -l 中的 max number of shared memory segments 对应 /proc/sys/kernel/shmmni
  • ipcs -u 的 “segments allocated” 是当前活跃段数,不包括已标记删除但仍有进程 attached 的段
  • 信号量集的 nsems 总数要和 ipcs -l 的 “max semaphores per semaphore set” 对齐,超限会直接 semget 失败

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3670

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3193

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2253

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5390

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5062

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3013

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2525

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2739

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习