Systemd

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

  • July 9, 2021

我安裝/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。

systemd覆蓋或擴展它的方式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=1073741824

在打開的編輯器中。這會

  • 創建一個名為/etc/systemd/system/tmp.mount.d
  • 在該目錄中,添加一個名為override.conf包含上述文本的文件。

請注意,systemd.mount仍然說

通常,通過配置掛載點/etc/fstab是首選方法。

所以你可能只想這樣做,編輯/etc/fstab以在行上添加size=...選項/tmp(如果需要,添加它):

tmpfs /tmp tmpfs mode=1777,strictatime,nosuid,nodev,size=1073741824 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. 即使未在/etc/fstab安裝單元中指定它們,systemd 也會確保它們已安裝。

引用自:https://unix.stackexchange.com/questions/352042