有时会发现程序运行打开一个文件失败。这个时候就可以考虑查看该进程打开的文件描述符是否已经达到上限。
1.找个该进程对应的id
[root@ky35z ~]# ps -ef | grep java
root 10045 10016 0 12:43 pts/1 00:00:00 grep --color=auto java
root 21715 1 0 Oct20 ? 00:01:48 /pcts/java/jdk1.7.0_75/bin/java -Djava....
2.进入/proc/pid目录
[root@ky35z ~]# cd /proc/21715/
3.查看limits中的文件描述符限制数量
[root@ky35z 21715]# sed -n "/open/p" limits
Max open files 65535 65535 files
可以看到最大可打开的文件数量的软限制为65535。
4.在进入/proc/pid/fd目录,统计总的打开的文件数量
[root@ky35z fd]# ls -lR | grep "^l" | wc -l
55
很显然,没有超出打开的最大文件数量限制。当然你也可以到底打开了哪些文件,使用命令
[root@ky35z fd]# ls -al
微信公众号:爱问CTO![]()
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。