df 报告磁盘使用情况,但在共享内存 /dev/shm 中没有文件

Posted

技术标签:

【中文标题】df 报告磁盘使用情况,但在共享内存 /dev/shm 中没有文件【英文标题】:df reports disk usage but no files in shared memory /dev/shm 【发布时间】:2015-10-26 11:05:55 【问题描述】:

我正在尝试使用共享内存/c++ 进行编程。我有多个进程访问一个共享内存片段,然后在执行期间取消链接,并在完成前一个片段后链接到另一个片段。

所有的作品,除了,当我列出 ls /dev/shm 它是空的,但是当我 df /dev/shm 它说空间消耗,这是为什么?

【问题讨论】:

您应该检查 df 命令的真正作用。 man df - linux.die.net/man/1/df 和 man ls - linux.die.net/man/1/ls 我试了ls和ll,真的好像什么都没有。 如果其中一个答案对您有所帮助。请考虑接受,另见:meta.stackexchange.com/questions/5234/… 【参考方案1】:

如果您使用的是shm_unlik(),请记住shm_unlik

"移除以字符串命名的共享内存对象的名称 按名称指向。”

但是

"内存对象内容的删除应推迟到 所有对共享内存对象的打开和映射引用都已 删除。”

(如人page中所述)

因此,使用ls 可能看不到任何内容,但您仍然看到使用df 占用的内存。

【讨论】:

老问题,同样的问题。多久可以完全重启才能找到并删除正在使用共享内存的进程?

以上是关于df 报告磁盘使用情况,但在共享内存 /dev/shm 中没有文件的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本完成用户磁盘空间监测报告

Linux常用命令——df

df,du,磁盘分区

df 显示目前在Linux系统上的 文件系统的磁盘使用情况

df和du命令—查看磁盘和文件大小

df和du命令—查看磁盘和文件大小