当运行我的应用程序时,有时会出现一个关于“打开文件太多”的错误。
运行ulimit -a
报告限制为1024。如何将限制增加到1024以上?
编辑ulimit -n 2048
导致权限错误。
当运行我的应用程序时,有时会出现一个关于“打开文件太多”的错误。
运行ulimit -a
报告限制为1024。如何将限制增加到1024以上?
编辑ulimit -n 2048
导致权限错误。
你可以尝试执行 ulimit -n 2048
命令。这将仅重置当前 shell 的限制,并且您指定的数量不能超过硬限制。
每个操作系统都在配置文件中设置不同的硬限制。例如,Solaris 上的硬打开文件限制可以在 /etc/system 启动时设置。
set rlim_fd_max = 166384
set rlim_fd_cur = 8192
在OS X系统中,必须将相同的数据设置在/etc/sysctl.conf文件中。
kern.maxfilesperproc=166384
kern.maxfiles=8192
在Linux下,这些设置通常位于/etc/security/limits.conf。
有两种限制:
任何用户都可以设置软限制,而只有root用户才能更改硬限制。限制是进程的属性,当创建子进程时,它们会被继承。因此,在系统初始化时应该设置系统范围内的限制,例如在init脚本中设置,而在用户登录时应该设置用户范围内的限制,例如使用pam_limits。
通常在计算机启动时会设置默认值。因此,即使您在单个shell中重置了ulimit,您可能会发现它在重新启动后恢复到先前的值。如果要更改默认值,您可能需要使用grep命令搜索启动脚本是否存在ulimit命令。
ulimit
。您必须指定您正在使用的系统(例如WSL,Cygwin)。 - Melebius/etc/limits.conf
或 /etc/security/limits.conf
文件中增加允许的限制(该文件的位置取决于你使用的Linux发行版)。limits.conf
文件中添加以下内容:
* hard nofile 10000
然后注销并重新登录系统,就可以执行以下命令而无需获得权限错误:
ulimit -n 10000
ulimit
的教程,最终发现我已经以root身份登录。这就是为什么我一直看到ulimit -a
中的1024。我更改了通配符,并在limits.conf
中添加了一个*
。现在一切都好了,(我正在使用ssh密钥,不用担心:P)--谢谢!!! - NiCk Newman/etc/security/limits.d/
。 - Waldemar Wosiński1) 将以下行添加到/etc/security/limits.conf
webuser hard nofile 64000
然后以webuser身份登录
su - webuser
2)编辑以下两个文件,以针对webuser进行操作:
通过运行以下命令,向.bashrc和.bash_profile文件追加内容:
echo "ulimit -n 64000" >> .bashrc ; echo "ulimit -n 64000" >> .bash_profile
3) 登出,重新登录并验证更改是否已正确执行:
$ ulimit -a | grep open
open files (-n) 64000
就是这样,然后轰,轰轰轰。