Systemd 支持 tmpfs |如何手动指定 /tmp 大小

Systemd 支持 tmpfs |如何手动指定 /tmp 大小

我安装/tmp使用tmpfs

sudo systemctl enable tmp.mount
sudo systemctl start tmp.mount

但这种方式/tmp会占用所有空闲 RAM:

$ df -h /tmp
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           3.9G   12K  3.9G   1% /tmp
$

如何告诉 systemd tmp.mount 仅使用 1G?我知道我可以选择不使用 systemd 并手动添加条目/etc/fstab并指定其中的大小。但我不想那样做。我想使用 systemd 支持的 tmpfs。

答案1

系统方式覆盖tmp.mount或扩展它的方法是在/etc/systemd/system.您可以复制现有的tmp.mount(从/lib/systemd/system/usr/share/systemd可能)并编辑副本,或者更好的是,通过运行添加配置片段以仅更改安装选项

sudo systemctl edit tmp.mount

并进入

[Mount]
Options=mode=1777,strictatime,nosuid,nodev,size=1G

在打开的编辑器中。这会

  • 创建一个名为的目录/etc/systemd/system/tmp.mount.d
  • 在该目录中,添加一个名为 的文件,override.conf其中包含上述文本。

注意systemd.mount仍然这么说

一般来说,通过配置挂载点/etc/fstab是首选方法。

所以你可能只是想这样做,IE编辑/etc/fstab以添加size=.../tmp行的选项(如果需要的话添加):

tmpfs /tmp tmpfs mode=1777,strictatime,nosuid,nodev,size=1G 0 0

事实上,这是更改任何安装选项的推荐方法systemd 的“API 文件系统”

尽管通常这些 API 文件系统都没有列出,但/etc/fstab它们也可以添加到其中。如果是这样,其中指定的任何选项都将应用于该特定的 API 文件系统。因此:要更改这些文件系统的安装选项或其他参数,只需将它们添加到/etc/fstab适当的设置即可。使用这种技术,除了简单地更改安装选项之外,还可以更改文件系统的源、类型。这对于转向/tmp由物理磁盘支持的真正文件系统非常有用。

API 文件系统包括以下内容:/sys, /proc, /dev, /run, /tmp, /sys/fs/cgroup, /sys/kernel/security, /sys/kernel/debug, /sys/kernel/config, /sys/fs/selinux, /dev/shm, /dev/pts, /proc/sys/fs/binfmt_misc, /dev/mqueue, /dev/hugepages, /sys/fs/fuse/connections, /sys/firmware/efi/efivars。 systemd 确保它们被安装,即使它们没有在/etc/fstab安装单元中指定。

调整文件系统大小时要小心tmpfs:它们最终会与系统中需要内存的任何其他内容(包括交换)竞争,并可能在您不期望的情况下导致内存耗尽;最坏的情况这可能会导致死锁

相关内容