温馨提示×

debian ulimit重启后生效吗

小樊
45
2026-10-03 23:27:07
栏目: 智能运维

在 Debian(以及其他 Linux 发行版)中,ulimit 本身不会“重启后自动生效”,具体要看你是怎么设置的。下面分情况说明:


1️⃣ 直接在终端执行 ulimit

ulimit -n 65535
  • ✅ 只对当前 shell 会话生效
  • ❌ 退出终端 / 重启系统后 失效
  • 适用于临时测试

2️⃣ 写入 ~/.bashrc / ~/.profile

echo "ulimit -n 65535" >> ~/.bashrc
  • ✅ 只对该用户生效
  • ✅ 每次登录(交互式 shell)会自动执行
  • ❌ 不影响系统服务 / 守护进程
  • ❌ 重启后对该用户登录会话有效,但服务不读这些文件

3️⃣ 系统级永久生效(推荐)

方法一:/etc/security/limits.conf

* soft nofile 65535
* hard nofile 65535

或指定用户:

www-data soft nofile 65535
www-data hard nofile 65535

✅ 重启后生效
✅ 对登录用户和服务都有效(前提是 PAM 启用)

⚠️ 注意:

  • 需要 pam_limits.so 支持(Debian 默认有)
  • 某些 systemd 服务不读 limits.conf

方法二:systemd 服务(重要)

如果使用 systemctl 启动的服务:

[Service]
LimitNOFILE=65535

或全局:

/etc/systemd/system.conf
DefaultLimitNOFILE=65535

然后:

systemctl daemon-reexec

✅ 重启后生效
✅ 对 systemd 服务有效


4️⃣ 总结一句话

ulimit 不会在重启后自动生效,除非你把它写进配置文件(limits.conf 或 systemd)。


如果你能告诉我:

  • 是 用户进程 还是 某个服务(如 nginx / mysql)
  • 想限制的是 文件数 / 进程数 / 内存

我可以给你最精确的配置方式。

0 踩