我认为您无法使用标准工具来做到这一点。您可以使用
ipcs -mp获取要附加/分离的 最后一个 进程的进程ID,但是我不知道如何使用来获取 所有
附加的进程
ipcs。
对于两个进程相连的段,假设它们都 保持 相连,则可以从创建者PID
cpid和最后一个相连的PID中找出
lpid这两个进程,但是它们不能扩展到两个以上进程,因此其实用性受到限制。
该
cat /proc/sysvipc/shm方法似乎受到类似的限制,但是我相信有一种方法可以对
/proc文件系统的其他部分进行处理,如下所示:
当我
grep在
procfs所有进程的地图上执行时,会得到包含
cpid和
lpid进程行的条目。
例如,我从以下获得共享内存段
ipcs -m:
------ Shared Memory Segments --------key shmid owner perms bytes nattch status 0x00000000 123456 pax 600 1024 2 dest
并且,从
ipcs -mp中,
cpid是3956和
lpid9999对于给定共享存储器段(123456)。
然后,使用命令
grep 123456 /procmaps“文件”,您应该能够发现当前将哪些PID附加到给定的段。



