/tmp 在 tmpfs 中,如何仅使用 systemd 执行此操作?

Yon*_*lis 9 tmp tmpfs systemd

我现在有一台装有 Ubuntu 18.04 的笔记本电脑,我很喜欢它。我已经通过/etc/fstab线路将/tmp 安装为 tmpfs,如下所示:

tmpfs           /tmp            tmpfs   defaults,noatime,nosuid,nodev,noexec,mode=1777    0       0
Run Code Online (Sandbox Code Playgroud)

现在,我想知道我如何才能做到这一点systemd,我只需要激活一项新systemd服务(tmp.mount相关),或者我还需要一件事?我如何在实时模式下/etc/fstabsystemd我的笔记本电脑替换我的实际线路?

fil*_*den 12

请注意,使用/etc/fstab仍然是 systemd 的首选方法!

请参阅systemd.mount的手册页,其中指出:

通常,通过 /etc/fstab 配置挂载点是首选方法。

systemd 附带systemd-fstab-generator,它将这些转换为挂载单元。


如果您真的想将该挂载转换为挂载单元,我的建议是使用以下命令检查其当前的确切配置:

$ systemctl cat tmp.mount
Run Code Online (Sandbox Code Playgroud)

或者:

$ systemctl cat /tmp
Run Code Online (Sandbox Code Playgroud)

这将显示由 systemd-fstab-generator 创建的动态单元,应该类似于:

# /run/systemd/generator/tmp.mount
# Automatically generated by systemd-fstab-generator

[Unit]
SourcePath=/etc/fstab
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
Before=local-fs.target

[Mount]
What=tmpfs
Where=/tmp
Type=tmpfs
Options=noatime,nosuid,nodev,noexec,mode=1777
Run Code Online (Sandbox Code Playgroud)

您可以将这些内容保存到/etc/systemd/system/tmp.mount并运行systemctl enable tmp.mount以激活它。(您需要添加一个[Install]部分和一个WantedBy=local-fs.target才能成功启用它。)

(另一种选择是使用systemd 源中的tmp.mount。其他一些发行版,如 Fedora,正在发布并启用该发行版。)

不要忘记从 中删除一个/etc/fstab,否则它们可能会发生冲突。(我相信 fstab 中的那个会占上风,因为我希望/run优先于/etc.)

但是,如前所述,通过管理/etc/fstab仍然是首选的解决方案......所以我可能会建议你仍然坚持使用那个。