ulimit命令用于控制shell进程及其子进程可以打开的文件描述符数量。文件描述符是一个非负整数,用于表示进程打开的文件、管道、网络套接字等资源的抽象指标。
要使用ulimit命令管理文件描述符,请按照以下步骤操作:
查看当前文件描述符限制:
ulimit -n
这将显示当前shell进程允许的最大文件描述符数量。
临时更改文件描述符限制:
要临时更改文件描述符限制,可以使用ulimit命令的-n选项,后跟所需的最大文件描述符数量。例如,要将限制更改为4096,请运行:
ulimit -n 4096
请注意,此更改仅适用于当前shell会话及其子进程。关闭shell或重新启动系统后,更改将失效。
永久更改文件描述符限制:
要永久更改文件描述符限制,需要编辑系统配置文件。具体方法取决于操作系统和发行版。以下是在某些常见Linux发行版上更改文件描述符限制的方法:
对于基于Systemd的系统(如Ubuntu 16.04及更高版本、CentOS 7及更高版本):
创建一个新的Systemd drop-in文件,例如/etc/systemd/system.conf.d/limits.conf:
sudo nano /etc/systemd/system.conf.d/limits.conf
在文件中添加以下行,将<limit>替换为所需的最大文件描述符数量:
DefaultLimitNOFILE=<limit>
保存并关闭文件。
重新加载Systemd配置并重启系统:
sudo systemctl daemon-reload
sudo reboot
对于基于SysVinit的系统(如Ubuntu 14.04及更低版本、CentOS 6及更低版本):
编辑/etc/security/limits.conf文件:
sudo nano /etc/security/limits.conf
在文件末尾添加以下行,将<user>替换为要更改限制的用户,将<limit>替换为所需的最大文件描述符数量:
<user> soft nofile <limit>
<user> hard nofile <limit>
保存并关闭文件。
重新登录以使更改生效。
完成上述步骤后,新的文件描述符限制将生效。可以使用ulimit -n命令验证更改是否成功。