所以我试图改变 Ubuntu18.04 笔记本电脑上文件描述符的硬限制。我已经尝试了一切,但更改仍然没有生效。
我需要运行一个不断抛出此错误的 go 程序。too many open files
所以我/etc/security/limits.conf
根据这篇博客文章对我的文件做了一些更改https://medium.com/@muhammadtriwibowo/set-permanently-ulimit-n-open-files-in-ubuntu-4d61064429a
这些是内容limits.conf
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
root soft nproc 65535
root hard nproc 65535
root soft nofile 65535
root hard nofile 65535
我还更改了 /etc/pam.d/common-session 以添加 session required pam_limits.so 行
我重新启动了终端,ulimit -Hn
仍然显示 4096,但是当我执行 sudo su 并运行相同的命令时,它给了我 65535
但是由于我没有在 su 会话内运行我的 go 程序,它仍然对我不起作用,我需要将我的实际硬限制更改为所有用户的更高值,而不仅仅是超级用户
我究竟做错了什么?
答案1
你们非常接近。
添加需要这些值的用户名。您刚刚为 root 设置了限制,现在为您需要的用户设置它。
您可以添加用户组等。从 Redhat 站点:
# vi /etc/security/limits.conf
#<domain> <type> <item> <value>
* - core <value>
* - data <value>
* - priority <value>
* - fsize <value>
* soft sigpending <value> eg:57344
* hard sigpending <value> eg:57444
* - memlock <value>
* - nofile <value> eg:1024
* - msgqueue <value> eg:819200
* - locks <value>
* soft core <value>
* hard nofile <value>
@<group> hard nproc <value>
<user> soft nproc <value>
%<group> hard nproc <value>
<user> hard nproc <value>
@<group> - maxlogins <value>
<user> hard cpu <value>
<user> soft cpu <value>
<user> hard locks <value>
<domain> can be:
a user name
a group name, with @group syntax
the wildcard *, for default entry
the wildcard %, can be also used with %group syntax, for maxlogin limit
在 limit.conf 中设置用户,注销并重新登录,看看是否有帮助。
joe soft nproc 65535
joe hard nproc 65535
joe soft nofile 65535
joe hard nofile 65535