16.04 LTS 和 /dev/shm/ 文件消失

16.04 LTS 和 /dev/shm/ 文件消失

我正在迁移之前在 Ubuntu 12.04 LTS 上运行的 Web 应用程序。它大量使用了/dev/shm/。我发现应用程序数据在/dev/shm/Ubuntu 16.04 LTS 服务器上消失了。

是否有某种垃圾收集程序会从那里删除文件和目录?我看到 12.04 配置了此符号链接:/dev/shm -> /run/shm,而 16.04 则完全相反:/run/shm -> /dev/shm。不过,我看不出这有什么区别。


更新

  • 我怀疑是 AppArmor,但删除它并没有改变行为
  • 目录结构的删除似乎每五分钟发生一次
  • 包含文件的目录最终会被删除,但速度不会那么快
  • 我怀疑文件/目录的年龄会影响删除
  • 看起来像这个人也遇到了同样的问题

答案1

经过几个小时的搜索和阅读,我找到了罪魁祸首。这是一个设置systemd。包含/etc/systemd/logind.conf默认配置选项,每个选项均被注释掉。默认情况下,RemoveIPC选项设置为。该选项指示清除未登录的“用户帐户”的进程间通信 (IPC)。这不会影响“系统帐户”yessystemd

就我而言,文件和目录是为用户帐户而不是系统帐户创建的。

有两种可能的解决方案:

  1. 使用系统用户创建文件/为系统用户创建文件--使用系统选项创建的用户(adduser -radduser --system
  2. 编辑/etc/systemd/logind.conf,取消注释该行RemoveIPC=yes,将其更改为RemoveIPC=no,保存并重新启动系统

就我而言,我选择了选项#2,因为用户已经创建。

参考:

相关内容