在 Debian(以及一般的 Linux 系统)中,ulimit 不能真正“全局”地对所有进程统一设置,但可以通过多种机制实现“接近全局”的效果。下面分层说明。
ulimit 本身的限制ulimit 是 shell 内建命令,作用是:
因此:
ulimit/etc/security/limits.conf(最常用)适用于:
示例:
* soft nofile 65535
* hard nofile 65535
⚠️ 注意:
现代 Debian 使用 systemd,服务基本不受 limits.conf 影响
[Service]
LimitNOFILE=65535
# /etc/systemd/system.conf
DefaultLimitNOFILE=65535
修改后:
systemctl daemon-reexec
✅ 这会影响 大多数系统服务
/etc/profile 或 /etc/bash.bashrculimit -n 65535
⚠️ 只对:
对 systemd / cron / 守护进程无效
部分资源有系统级参数:
sysctl fs.file-max
sysctl -w fs.file-max=1000000
这是 系统总文件数上限,不是 per-process 限制
Debian 中 ulimit 能否全局设置?
✅ 可以“接近全局”,但不能用一条 ulimit 命令做到真正全局
推荐组合:
/etc/security/limits.confsystemd 的 Limit*sysctl如果你有具体场景(比如:Java 服务、Nginx、数据库连接数),我可以给你精确配置示例。