【问题标题】:Is this "shared memory" IPC-object deleted? [duplicate]这个“共享内存”IPC 对象被删除了吗? [复制]
【发布时间】:2011-11-18 23:47:41
【问题描述】:

可能重复:
deleting shared memory with ipcrm in Linux

我正在运行 Fedora 15 64 位。我有一些未被进程清理的共享内存。调用ipcs -m可以看到共享内存:

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x51012a29 294919     trevor     666        194400     2                       

当我打电话给ipcrm -m 294919 然后检查共享内存是否被删除时,你会看到:

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x00000000 294919     trevor     666        194400     2          dest   

IMO 共享内存仍然存在...因为它在我调用 ipcs -m 时出现。这个共享内存真的被删除了吗?

【问题讨论】:

  • (如果我遗漏了一些细微差别,请解释一下。例如。也许“它已被删除,但由于 linux 约定,您删除的共享内存仍然显示,因为... $INSERT_EXPLANATION”。或者也许'它被删除了......'dest'意味着共享内存被破坏......除非你这样做,否则它永远不会从ipcs -m中删除。')。

标签: linux ipc shared-memory


【解决方案1】:

做一点谷歌搜索。这是我发现的;

dest 显然意味着被标记为被销毁。我猜它不会被销毁,除非它被引用或处于暂时状态。

http://www.puschitz.com/TuningLinuxForOracle.shtml

【讨论】:

  • 是的,我刚刚发现“dest”意味着标记为销毁。要真正使共享内存段消失,您需要使用共享内存段终止进程。
  • soln:当您调用ipcs -mp 时,您将获得与共享内存段关联的PID 列表。然后您可以根据 PID 进行 kill 或通过执行 ps -ef | grep PID 查找 PID 的名称。我检查了谁在使用共享内存,然后将其杀死。
猜你喜欢
  • 2014-10-08
  • 1970-01-01
  • 2011-08-13
  • 2018-10-03
  • 2012-12-11
  • 2011-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多