如何在Linux中列出附加到共享内存段的进程?
|
如何确定共享内存段上附加了什么进程?
awagner@tree:/home/awagner$ ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 0 root 777 102400 1
0x00000000 32769 root 774 96 1 dest
0x00000000 98306 awagner 600 393216 2 dest
0x00000000 131075 awagner 600 393216 2 dest
即我如何确定shmid 98306附加了哪些两个进程?
没有找到相关结果
已邀请:
5 个回复
荒劫娇噬
获取要附加/分离的最后一个进程的进程ID,但是我不知道如何使用
获得所有附加的进程。 对于有两个进程的段,假设它们都保持连接,则可以从创建者PID
和最后一个附加的PID
中找出这两个进程,但是它们不会扩展到两个以上的进程,因此有用性有限。
方法似乎受到类似的限制,但我相信有一种方法可以对
文件系统的其他部分进行处理,如下所示: 当我在所有进程的
映射上执行ѭ7,时,会得到包含
和
进程行的条目。 例如,我从
获取以下共享内存段:
对于给定的共享内存段(123456),从
开始,
为3956,and4ѭ为9999。 然后,使用命令
,我看到:
因此,有一种方法可以获取附加的流程。我可以肯定的是ѭ18and状态和
指示符是因为创建者已将片段标记为要在最终分离发生后销毁,而不是已经将其销毁。 因此,通过扫描
\“ files \”,您应该能够发现当前将哪些PID附加到给定段。
呢率篓舍烫
痰降锭骂奸
队辅坟阮阶
:它提供所有资源的详细信息[信号灯,共享内存等] 这是输出的图像:
犁攀富
它列出了与共享内存关联的名称-至少在Ubuntu上。通常这些名字很能说明问题。