温馨提示×

debian ulimit在哪配置文件

小樊
48
2026-10-03 23:25:08
栏目: 智能运维

在 Debian 系统中,ulimit(资源限制)可以通过多个地方进行配置,具体取决于你是想临时设置、用户级设置还是系统/服务级设置。下面按常见场景说明配置文件位置。


1. 临时设置(当前 shell 会话)

ulimit -n 65535

只对当前 shell 及其子进程有效,重启或退出后失效。


2. 用户级限制(PAM + limits.conf)✅ 最常用

配置文件

/etc/security/limits.conf

示例:

*           soft    nofile      65535
*           hard    nofile      65535
www-data    soft    nproc       4096

启用 PAM 限制(通常已默认启用)

确保以下文件中包含:

/etc/pam.d/common-session
/etc/pam.d/common-session-noninteractive

包含这一行:

session required pam_limits.so

⚠️ 注意:

  • 对 已登录用户 生效
  • 对 systemd 服务不生效

3. systemd 服务限制(Debian 8+ 常用)

如果是服务(如 Nginx、MySQL),limits.conf 可能不生效。

方法一:服务自身配置

/etc/systemd/system/xxx.service.d/limits.conf

示例:

[Service]
LimitNOFILE=65535
LimitNPROC=4096

然后执行:

systemctl daemon-reload
systemctl restart xxx

方法二:全局 systemd 限制

/etc/systemd/system.conf
/etc/systemd/user.conf

示例:

DefaultLimitNOFILE=65535

4. 系统级内核参数(不是 ulimit,但相关)

/etc/sysctl.conf

例如:

fs.file-max = 1000000

生效:

sysctl -p

5. 登录 shell 初始化文件(不推荐单独用)

~/.bashrc
~/.profile
/etc/profile

可写 ulimit,但不如 limits.conf 规范。


总结对照表

场景 配置文件
临时 shell 命令
用户登录 /etc/security/limits.conf
systemd 服务 xxx.service.d/*.conf
全局 systemd /etc/systemd/system.conf
内核级 /etc/sysctl.conf

如果你能说明是 哪个用户 / 哪个服务 / 哪种资源(nofile、nproc 等),我可以给你更精确的配置示例。

0 踩