在 Ubuntu 中,ulimit 用于限制用户/进程可使用的系统资源(如打开文件数、进程数等)。要“重置”或“修改” ulimit,需要看你是临时重置(当前 shell / 进程)还是永久重置(所有用户/系统)。
下面分情况说明。
ulimit -a
常见项:
-n:打开文件数(file descriptors)-u:最大进程数-c:core 文件大小-s:栈大小ulimit -n 65536
ulimit -u 4096
✅ 只对当前终端和由其启动的进程有效
❌ 退出 shell 后失效
ulimit -n unlimited
或重新登录:
exit
再登录即可恢复默认。
/etc/security/limits.conf编辑文件:
sudo vim /etc/security/limits.conf
示例(针对所有用户):
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
说明:
soft:警告值hard:最大值nofile:打开文件数nproc:进程数⚠ 修改后重新登录或重启才生效。
如果是 服务 / 后台进程,limits.conf 可能不生效。
编辑:
sudo vim /etc/systemd/system.conf
修改:
DefaultLimitNOFILE=65536
DefaultLimitNPROC=4096
然后:
sudo systemctl daemon-reexec
或重启系统。
sudo systemctl edit nginx
添加:
[Service]
LimitNOFILE=65536
在 Docker 中:
docker run --ulimit nofile=65536:65536 ...
或在 docker-compose.yml:
ulimits:
nofile:
soft: 65536
hard: 65536
如果不确定改了什么:
/etc/security/limits.conf 中你加的内容/etc/systemd/system.conf❌ 普通用户不能提高 hard limit
❌ SSH 登录可能受 UsePAM yes 影响
❌ 云服务器常默认很低(如 1024)
如果你能说明:
nofile)我可以给你精确命令。