如果“/tmp”是符号链接,则在重启时不会被清除

如果“/tmp”是符号链接,则在重启时不会被清除

在 Ubuntu Server 22.04 上,我安装了一个 SSD /scratch。我/tmp用符号链接替换了 ,/scratch/tmp以便将临时文件存储在 SSD 上:

$ ls -l /tmp
lrwxrwxrwx 1 root root 12 Jan 13 16:22 /tmp -> /scratch/tmp

似乎运行良好,但有一个问题:/tmp重启后,内容不再被删除,正如我所期望的那样。我该如何实现这一点?

答案1

systemd-tmpfilesUbuntu 中的临时文件由相关服务清理/lib/systemd/system/systemd-tmpfiles-clean.service,这些文件的配置可以在其中进行配置/etc/tmpfiles.d/*.conf(另请参阅这个答案)。

要包含您描述的目录,请创建一个配置文件:

sudo touch /etc/tmpfiles.d/scratch-tmp.conf

然后将以下内容包含在其中:

# Type  Path         Mode User Group Age Argument
  e     /scratch/tmp -    -    -     20m

类型e定义这是一个已存在但应清除的“标记”目录。年龄设置为20m将清除所有超过 20 分钟的文件(见下文说明)。

如果类型为d,则如果目录不存在则会创建该目录,并在重启时和每天清理该目录。

请注意,触发该服务的计时器(位于/lib/systemd/system/systemd-tmpfiles-clean.timer)设置为运行 15 分钟启动,因此直到正常运行 15 分钟后您才会看到重新启动时的实际效果。

请参阅手册页tmpfiles.d了解更多信息。

相关内容