在 Debian 上执行 ulimit 报错,通常不是 ulimit 本身有问题,而是使用方式或运行环境不对。下面按常见原因给你梳理一下。
ulimit 但权限不够例如:
ulimit -n 100000
报错:
-bash: ulimit: open files: cannot modify limit: Operation not permitted
/etc/security/limits.conf示例:
* soft nofile 100000
* hard nofile 100000
然后重新登录
这是最常见也最容易踩坑的点。
如果你在:
/etc/security/limits.conf
里设置了 nofile,但服务仍然报错,那是因为:
systemd 启动的服务不读 limits.conf
[Service]
LimitNOFILE=100000
然后:
systemctl daemon-reexec
systemctl restart 你的服务
/etc/systemd/system.conf
DefaultLimitNOFILE=100000
Debian 容器内执行:
ulimit -n 65535
报错:
ulimit: core size: cannot modify limit
docker run --ulimit nofile=65535:65535 ...
--privileged(不推荐)sh 而不是 bash在某些最小化 Debian 里:
sh
ulimit -u
可能报错或不支持部分选项。
bash
错误示例:
ulimit -n=1024
正确:
ulimit -n 1024
错误:
ulimit
只显示部分值
推荐:
ulimit -a
你可以直接把报错贴出来,我可以精准判断。但一般先看:
如果你愿意,可以把**完整报错信息 + 使用场景(登录用户 / 服务 / 容器)**发出来,我可以直接帮你改成可用配置。