ulimit 是一个实用工具,专门用于控制 Shell 进程的资源限制。如果你需要调整 Linux 系统能够打开的最大文件数,就必须配置两个关键文件:/etc/security/limits.conf 和 /etc/sysctl.conf。别担心,下面会一步步演示如何操作。

步骤1:修改 /etc/security/limits.conf
首先打开这个配置文件。你可以使用熟悉的文本编辑器,例如 nano:
sudo nano /etc/security/limits.conf
然后在文件末尾添加以下两行内容,记得把 替换成你实际的用户名:
soft nofile
hard nofile
soft nofile 指的是软限制——即用户自身可以设置的最大文件描述符数量;hard nofile 则是硬限制——系统所允许的上限。通常硬限制需要大于或等于软限制。举个例子,如果你想将软限制设为 65536,硬限制设为 131072,那么可以这样写:
soft nofile 65536
hard nofile 131072
保存并退出文件。
步骤2:修改 /etc/sysctl.conf
接下来编辑系统内核参数配置文件:
sudo nano /etc/sysctl.conf
在文件末尾添加一行,指定整个系统能够同时打开的最大文件总数:
fs.file-max =
比如你想要将这个值设定为 200000,就写入:
fs.file-max = 200000
保存并关闭文件。
步骤3:使改动生效
有两种方式可以使新配置生效。最直接的方式是重启系统:
sudo reboot
如果你的系统支持内核参数热加载,也可以先尝试以下命令,避免重启:
sudo sysctl -p
该命令会从 /etc/sysctl.conf 中读取参数并立即应用。
至此,系统级别的文件描述符限制已经更新。但需要注意的是:这些改动只影响通过 ulimit 管理的资源限制。某些应用程序本身可能还持有独立的资源限制配置,需要单独进行调整。如果你遇到某个应用仍然报告“打开文件过多”的错误,记得检查该应用自身的配置文件。
