乐趣区

linux中如何查看进程打开的文件描述符思否已达到上限

微信公众号:51 码农网
专业编程问答社区
www.51manong.com

有时会发现程序运行打开一个文件失败。这个时候就可以考虑查看该进程打开的文件描述符是否已经达到上限。
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
退出移动版