我计划使用运行Java应用程序nohup ... &
。该限制必须适用于这样的命令。
但这在我的Java程序中引起了一个错误
我计划使用运行Java应用程序nohup ... &
。该限制必须适用于这样的命令。
Answers:
大多数系统使用PAM,并具有pam_limits
基于的模块设置限制/etc/security/limits.conf
。每个用户打开文件的限制称为nofile
。您可以为每个用户或特定用户或组设置它,还可以设置用户可以覆盖的限制(软限制)和仅root用户可以覆盖的限制(硬限制)。该文件和limits.conf
手册页有详细信息。例如,要将每个人的限制提高到50000,请输入以下行/etc/limits.conf
(该设置在您登录时生效):
* - nofile 50000
limits.conf
do * hard nofile 50000
和/或内* soft nofile 50000
。我不知道硬性和软性之间的技术差异,而且总是兼而有之。
limit descriptors 50000
更改给定终端窗口/会话内的值。
ulimit
命令(limit
在csh中调用)随时更改软限制。没有特权的用户永远不能超过硬限制。
您可以添加fs.file-max = <your number>
到中/etc/sysctl.conf
。然后重新启动。
sysctl fs.file-max=123456
。(/etc/sysctl.conf
在启动时由调用sysctl
内容的脚本读取。)
您可以为此使用ulimit:
http://bloggerdigest.blogspot.com/2006/10/purpose-of-ulimit-linux-command.html
尽管您应该确保在进行此类调整之前绝对需要打开这么多文件句柄。仅仅因为您忘记在循环中执行inputstream.close()而增加最大文件句柄只会延迟潜在的问题。
vi ~/.bashrc
并在文件末尾添加一行
ulimit -n 169203