温馨提示×

怎样永久设置debian ulimit

小樊
37
2026-09-07 01:31:17
栏目: 智能运维

在 Debian 中,“永久设置 ulimit”通常取决于你想对谁生效

  • 某个用户 / 用户组
  • 系统服务(systemd)
  • 整个系统默认

下面按常见场景说明。


一、对用户永久生效(推荐,最常用)

1. 使用 /etc/security/limits.conf

编辑文件:

sudo nano /etc/security/limits.conf

示例(对用户 appuser):

appuser soft nofile 65535
appuser hard nofile 65535
appuser soft nproc 4096
appuser hard nproc 4096

含义:

  • soft:软限制(可临时超过,但会警告)
  • hard:硬限制(不能超过)
  • nofile:打开文件数
  • nproc:进程数

2. 确保 PAM 启用 limits

检查以下文件是否包含(一般默认有):

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

应有:

session required pam_limits.so

3. 重新登录用户生效

su - appuser
ulimit -a

二、对用户组永久生效

@appgroup soft nofile 65535
@appgroup hard nofile 65535

三、systemd 服务永久生效(重要!)

⚠️ limits.conf 对 systemd 服务不生效

方法 1:在 service 文件中设置

sudo systemctl edit myservice

添加:

[Service]
LimitNOFILE=65535
LimitNPROC=4096

然后:

sudo systemctl daemon-reload
sudo systemctl restart myservice

四、系统全局默认值(不推荐随意改)

1. systemd 全局限制

sudo nano /etc/systemd/system.conf
DefaultLimitNOFILE=65535
DefaultLimitNPROC=4096

修改后重启系统生效。


五、临时验证(不永久)

ulimit -n 65535

六、常见坑总结

问题 原因
改了 limits.conf 不生效 用的是 systemd 服务
docker 中不生效 需在 docker run 加 --ulimit
重启后失效 只用了 ulimit 命令

如果你能说明:

  • Debian 版本
  • 想限制“用户”还是“服务”
  • 具体是 nofile / nproc / core

我可以给你精确配置文件示例

0