sudo:ulimit:找不到命令

sudo:ulimit:找不到命令

在 Ubuntu 12.04 上,我运行ulimit -n,它显示 1024。我想将打开文件限制从 1024 增加到 65535,所以我尝试了以下命令:

sudo ulimit -n 65535

但我收到以下错误:

sudo: ulimit: command not found

如何将文件限制从 1024 增加到 65535?

答案1

限制是特定于过程的。ulimit是 shell 内置的,只能更改此 shell 以及从此 shell 启动的进程的限制。sudo ulimit没有任何意义。即使它不会失败,也只会影响sudo同时启动的进程,而没有任何进程。它无法更改当前会话的限制,因为它会创建一个新会话(针对用户 root)并随后立即终止它。

为了将您的限制提高到硬限制之上,您必须提高全球的硬限制全部用户或为您设置不同的限制具体的用户。这些限制在/etc/security/limits.conf(或)中定义/etc/security/limits.d/。编辑此文件并为您的用户创建一个新条目:

sunpy             hard    nofile           65535

保存文件并打开一个新会话。然后在新会话中调用ulimit -Hn应该会显示新的难的打开文件的数量限制。为了使用难的限制,你必须提高你的电流柔软的限制为难的通过调用来限制ulimit -n 65535

当然你也可以改变你的柔软的通过指定永久限制柔软的代替难的在你的/etc/security/limits.conf。然后,您不必手动提高软限制,但新的限制将适用于您的每个会话。

哦,还有根据这个答案看来你必须编辑/etc/pam.d/common-session*和添加:

session required pam_limits.so

如果尚未完成。否则这些限制将不适用于您的会话。

相关内容