在Ubuntu下启动java应用时,在控制台输出会抛出打开太多的文错误信息。
open too many file
应用无法启动,google了下,是因为应用打开的文件句柄数超出了系统的限制。使用命令:
ulimit -n
输出1024
解决方案:
1.调整Ubuntu下的文件句柄数。
查看这篇文章:
http://blog.csdn.net/zhaiqi618/article/details/5616998 中的
1. #vi /etc/profile,增加ulimit -HSn 65536 将文件句柄数修改到10240,但执行后,使用
source /etc/profile之后,提示:
bash: ulimit: open files: 无法修改 limit 值: 不允许的操作
于是查找到这篇:
写道
为啥root用户是可以的?普通用户又会遇到这样的问题?
看一下/etc/security/limits.conf大概就会明白。
linux对用户有默认的ulimit限制,而这个文件可以配置用户的硬配置和软配置,硬配置是个上限。
超出上限的修改就会出“不允许的操作”这样的错误。
于是我用root权限修改了/etc/security/limits.conf文件,增加以下内容:
* soft nproc 10240
* hard nproc 10240
* soft nofile 10240
* hard nofile 10240
*代表domain,影响到的域,我这里设置了全部。
soft/hard :代表软性或者硬性限制
nproc:max number of processes 设置最大的进程数
nofile:max number of open files 设置最大的文件句柄数
再编辑/etc/pam.d/common-session,加入一行,之所以加入这行,是因为需要在下次重启的时候,能够让用户直接修改
/etc/profile中的文件句柄数生效。http://www.ccs.neu.edu/home/battista/articles/winbind/pam.html (具体这个文件是做什么用的,我在下次再讨论下。)
session required pam_limits.so
再编辑/etc/profile文件,加入刚才的内容:
此时执行:
source /etc/profile 仍然会提示:
bash: ulimit: open files: 无法修改 limit 值: 不允许的操作
这是因为需要重启电脑,否则更改不会立即生效。
检查:
ulimit -a 这个是列出当前系统的所有内容限制
ulimit -n 这个是列出当前系统能够打开最大的文件句柄数。
重启电脑之后,就可以使用root方式进行修改/etc/profile中的ulimit -HSn 后的数字,再执行source /etc/profile,就可以马上看到效果了。
分享到:
相关推荐
从打开的文件句柄获得文件的路径.根据HANDLE获得文件路径
修改文件句柄数在Linux下,我们使用ulimit -n 命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。 对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象...
linux系统级别的能够打开的文件句柄的数file-max命令.docx
易语言根据文件句柄取文件路径源码,根据文件句柄取文件路径,文件句柄取文件路径名,lopen,ZwQueryObject,WToM,lclose,QueryDosDevice,StrCmpNI
列出打开了某个文件句柄的进程,找出谁在使用某个文件.zip
枚举当前系统的所有已打开文件的句柄及路径.zip
设置Linux打开文件句柄/proc/sys/fs/file-max和ulimit -n的区别表示系统级别的能够打开的文件句柄的数量.是对整个系统的限制,并不是
易语言文件号和文件句柄互转模块源码,文件号和文件句柄互转模块,文件号转句柄,句柄转文件号,CopyMemory,ZwClose,ZwQueryInformationFile
Linux Shell 网络层监控脚本(监控包括:连接数、句柄数及根据监控反馈结果分析)
在vue开发时需要在页面跳转的时候传递文件句柄,又不想用vuex来传递,因为vuex使用有些大材小用,说以用mitt,也就是vue2的eventbus。vue3没有eventbus,所以使用mitt,来传递文件句柄,在另一个页面就可以拿到文件...
查找已经打开的程序文件窗口句柄,显示出句柄号码,自己学习用的
先运行 fdtrans 建立监听, 然后 运行fdtranc fdtranc 连接fdtrans并得到 文件 fdtrans.cpp的句柄。然后 fdtranc 用这个句柄读文件的前 30个字节并显示出来。 参考文章见 apue2 Section 17.4. Passing File ...
易语言源码易语言文件号和文件句柄互转模块源码.rar 易语言源码易语言文件号和文件句柄互转模块源码.rar 易语言源码易语言文件号和文件句柄互转模块源码.rar 易语言源码易语言文件号和文件句柄互转模块源码.rar ...
如何知道进程打开了哪些文件句柄handle
在服务端不存在或没开启时,clientsocket反复连接服务端会导致程序句柄数急速增加,最后系统资源耗尽出错,本demo较好的解决了这一问题.
易语言根据文件句柄取文件路径源码。@易语言源码分享站。
ZwQuerySystemInformation查找文件句柄
M文件与句柄
得到指定进程所占用的句柄数handle_NtQueryInformationProcess第二个参数为20.zip