我安装/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
:它们最终会与系统中需要内存的任何其他内容(包括交换)竞争,并可能在您不期望的情况下导致内存耗尽;最坏的情况这可能会导致死锁。