在运行我的应用程序时,有时会出现大约too many files open个错误.

运行ulimit -a次会报告限制为1024次.如何将限制提高到1024以上?

Edit

推荐答案

你可以试着打ulimit -n 2048分.这只会重置当前shell 的限制,并且指定的数量不得超过硬限制

每个操作系统在配置文件中都有不同的硬限制设置.例如,Solaris上的硬打开文件限制可以在从/etc/system bootstrap 时设置.

set rlim_fd_max = 166384
set rlim_fd_cur = 8192

在OSX上,必须在/etc/sysctl中设置相同的数据.形态.

kern.maxfilesperproc=166384
kern.maxfiles=8192

在Linux下,这些设置通常在/etc/security/limits中.形态.

有两种限制:

  • soft个限制只是目前强制执行的限制
  • hard个限值标记通过设置软限值不能超过的最大值

软限制可以由任何用户设置,而硬限制只能由root用户更改.

机器启动时通常会设置默认值.因此,即使您可以在单个shell中重置ulimit,您可能会发现它在重新启动时会重置回以前的值.如果要更改默认值,您可能需要为ulimit命令的存在对 bootstrap 脚本进行grep.

Linux相关问答推荐

抛出主,即未捕获到SIGSEGV中的异常结果

如何确定Linux上的最大静态TLS(线程本地存储)块大小?

如何删除字符串中的`{{i:`and `}}`

如何告诉链接器不要在链接的共享库中查找某些符号?

从一个文件中读取文件名并将文件名和内容存储到另一个带有|的文件中作为分隔符

将十六进制文件名转换为十进制

为什么要命令; ls -l file_doesnot_exists > /dev/null 2>&1 正在工作; ls -l 2>&1 file_doesnot_exists > /dev/null 不是

在 bash 中查找匹配多个模式的文件

如何使用 __attribute__((visibility("default")))?

如何在 Linux 中向应用程序发出信号而不杀死它?

如何为 Linux 构建 Visual C++ 项目?

将 awk 输出保存到变量

用于 Linux 的 Less 编译器

`是什么意思! -d` 在这个 Bash 命令中?

是否有一个 linux 命令来确定与给定进程 ID 关联的窗口 ID?

区分 Windows 和类 Unix 系统的 Makefile

判断环境变量是否已经设置

Linux控制台中的模糊文件搜索

readelf vs. objdump:为什么都需要

在tmux中绑定Ctrl+Tab和Ctrl+Shift+Tab