提高 WSL2 下的 nofile 限制
Raising the nofile limit under WSL2
我不是您所说的高级 linux 用户,所以对于一个可能很愚蠢的问题,我深表歉意。
我正在尝试使用 WSL2 提高我的 UBUNTU 20.04 发行版的 NOFILE 限制,遵循本指南:cannot-increase-open-file-limit-past-4096-ubuntu
但是,当我尝试修改相应的 .conf
文件时,我得到了权限被拒绝的错误。
当尝试从 windows 和 VsCode 这样做时,我得到:
Failed to save 'system.conf': Command failed: "C:\Users\sague\AppData\Local\Programs\Microsoft VS Code\bin\code.cmd" --file-write "c:\Users\sague\AppData\Roaming\Code\code-elevated-mjlcag" "\wsl$\Ubuntu-20.04\etc\systemd\system.conf" Error using --file-write: EPERM: operation not permitted, open '\wsl$\Ubuntu-20.04\etc\systemd\system.conf'
当尝试在 WSL2 终端(使用 windows 终端)中使用 nano 这样做时,我得到:
Error writing /etc/systemd/system.conf: Permission denied
请帮忙,我受困于此 :')
我很抱歉这可能是一个非常菜鸟的问题
嗯,老实说,你 犯了一些新手错误,但别担心 - 即使你克服了这些错误,你在 WSL 并不容易。
首先,您试图以普通用户身份在 nano
中编辑系统文件,导致 Permission denied
。解决方案:改用 sudo nano /etc/systemd/system.conf
。但请参阅下文 (3),了解为什么这最终行不通。
其次,您正试图在 VSCode 下以普通用户身份编辑 WSL 系统文件。这只是行不通,因为 VSCode 总是 运行 设计为普通用户。有可能在 sudo
下达到 运行,但这可能不值得付出努力。请注意,当 运行 在 VSCode 中使用“Remote - SSH”扩展(类似于您现在使用的“Remote - WSL”)时,这也是一个限制。
您正在尝试修改 WSL 下的 systemd
配置,其中没有 systemd
支持,因此即使您成功编辑了文件,也没有打算做任何事情。
你的下一次尝试可能是(对我们大多数人来说都是如此)尝试通过 /etc/security/limits.conf
提高 ulimit, 正确的方法,但需要 WSL 下的技巧。该文件是一个 PAM 构造,并且......好吧,PAM 运行 在登录时,我们不在 WSL 中“登录”,因此 PAM 通常不会被调用。
如我所述 in this answer on Ask Ubuntu (with great assistance from a number of answers in this Github thread) 的骇人听闻的解决方案是对 /etc/security/limits.conf
进行修改,然后通过 sudo
将其作为您自己的返回来强制 PAM 对其进行处理用户来自:
sudo su $USER
或可能
sudo su - $USER # if you need to run as a login shell
Github 线程中还有一些其他建议,如果这些咒语对您来说不太管用的话。
我不是您所说的高级 linux 用户,所以对于一个可能很愚蠢的问题,我深表歉意。
我正在尝试使用 WSL2 提高我的 UBUNTU 20.04 发行版的 NOFILE 限制,遵循本指南:cannot-increase-open-file-limit-past-4096-ubuntu
但是,当我尝试修改相应的 .conf
文件时,我得到了权限被拒绝的错误。
当尝试从 windows 和 VsCode 这样做时,我得到:
Failed to save 'system.conf': Command failed: "C:\Users\sague\AppData\Local\Programs\Microsoft VS Code\bin\code.cmd" --file-write "c:\Users\sague\AppData\Roaming\Code\code-elevated-mjlcag" "\wsl$\Ubuntu-20.04\etc\systemd\system.conf" Error using --file-write: EPERM: operation not permitted, open '\wsl$\Ubuntu-20.04\etc\systemd\system.conf'
当尝试在 WSL2 终端(使用 windows 终端)中使用 nano 这样做时,我得到:
Error writing /etc/systemd/system.conf: Permission denied
请帮忙,我受困于此 :') 我很抱歉这可能是一个非常菜鸟的问题
嗯,老实说,你 犯了一些新手错误,但别担心 - 即使你克服了这些错误,你在 WSL 并不容易。
首先,您试图以普通用户身份在
nano
中编辑系统文件,导致Permission denied
。解决方案:改用sudo nano /etc/systemd/system.conf
。但请参阅下文 (3),了解为什么这最终行不通。其次,您正试图在 VSCode 下以普通用户身份编辑 WSL 系统文件。这只是行不通,因为 VSCode 总是 运行 设计为普通用户。有可能在
sudo
下达到 运行,但这可能不值得付出努力。请注意,当 运行 在 VSCode 中使用“Remote - SSH”扩展(类似于您现在使用的“Remote - WSL”)时,这也是一个限制。您正在尝试修改 WSL 下的
systemd
配置,其中没有systemd
支持,因此即使您成功编辑了文件,也没有打算做任何事情。你的下一次尝试可能是(对我们大多数人来说都是如此)尝试通过
/etc/security/limits.conf
提高 ulimit, 正确的方法,但需要 WSL 下的技巧。该文件是一个 PAM 构造,并且......好吧,PAM 运行 在登录时,我们不在 WSL 中“登录”,因此 PAM 通常不会被调用。
如我所述 in this answer on Ask Ubuntu (with great assistance from a number of answers in this Github thread) 的骇人听闻的解决方案是对 /etc/security/limits.conf
进行修改,然后通过 sudo
将其作为您自己的返回来强制 PAM 对其进行处理用户来自:
sudo su $USER
或可能
sudo su - $USER # if you need to run as a login shell
Github 线程中还有一些其他建议,如果这些咒语对您来说不太管用的话。