模拟重启以清除 Windows Linux 子系统上的 tmp

wow*_*ick 5 ubuntu windows-subsystem-for-linux

我一直在大量使用 Windows Linux 子系统进行 LAMP 开发。我注意到我的 SSD 是如何填满的,在运行 WinDirStat 后,我​​发现它的/tmp大小超过了 30GB!有没有办法模拟重新启动以清除/tmp或其他一些方法来防止 tmp 文件夹变大?

SEo*_*EoF 9

FSTAB - 在 WSL1 上无法按预期工作,但可能在 WSL2 上正常工作

最好的方法是确保您的/tmp目录是临时挂载的,但这在 WSL 上无法按预期工作

编辑您的/etc/fstab文件(具有管理员权限,即sudo vi /etc/fstab

添加以下行

tmpfs   /tmp    tmpfs   noexec,defaults,nodev,nosuid,noatime,size=256m  0 0
Run Code Online (Sandbox Code Playgroud)

现在关闭所有 bash 终端并重新打开。

仔细检查 WSL1,这似乎是为每个 bash 终端创建一个新的 /tmp 挂载,因此无法按预期工作。具体来说,在已建立的另一个终端之后打开一个新的 WSL1 终端会孤立原始 /tmp 挂载(它仍然占用空间),然后创建一个新终端。早期的 WSL1 终端似乎指向新的 /tmp 挂载,并且会丢失在新的 WSL1 终端打开之前保存在 /tmp 挂载中的任何内容。

安装.bashrc- 推荐用于 WSL1

~/.bashrc如果尚未安装,建议安装。这似乎对我有用

mount|grep -E "^[^ ]* on /tmp " >/dev/null
if [ "$?" != "0" ];then
        echo "Mounting tmp"
        sudo mount -t tmpfs tmpfs /tmp -o noexec,defaults,nodev,nosuid,noatime,size=256m
fi
Run Code Online (Sandbox Code Playgroud)

  • “fstab”对我有用。我不确定我是否没有正确检查,但如果我使用“wsl --shutdown”关闭,“/tmp”文件夹将被清除,并且任何其他实例都会共享它直到关闭。 (2认同)