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

Son*_*nny 7 12.04 shm 16.04

我正在迁移以前在 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,但删除它并没有改变行为
  • 目录结构的删除似乎每五分钟发生一次
  • 包含文件的目录最终会被删除,但不会那么快
  • 我怀疑文件/目录的年龄会影响删除
  • 看来这家伙也遇到了同样的问题

Son*_*nny 7

经过数小时的搜索和阅读,我找到了罪魁祸首。这是一个设置systemd。将/etc/systemd/logind.conf包含默认的配置选项,与他们每个人的注释。该RemoveIPC选项yes默认设置为。该选项告诉systemd清理未登录的“用户帐户”的进程间通信(IPC)。这不会影响“系统帐户”

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

有两种可能的解决方案:

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

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

参考:

  • 当无法重新启动系统时,只需重新启动登录: sudo systemctl restart systemd-logind.service (3认同)
  • 疯狂,为什么这是默认行为?:| (2认同)