ulimit -n 永久生效
时间: 2025-05-24 16:01:19 浏览: 92
### 如何配置 `ulimit -n` 实现永久生效
在 Linux 系统中,`ulimit` 是一种管理用户进程可用资源的重要工具。为了使 `ulimit -n` 的设置永久生效,可以通过编辑系统的配置文件来完成这一目标。
#### 方法一:通过 `/etc/security/limits.conf`
1. **编辑 limits.conf 文件**
打开并编辑 `/etc/security/limits.conf` 文件,在其中添加如下内容以设置 `nofile` 参数的软限制和硬限制:
```bash
* soft nofile 65535
* hard nofile 65535
```
这里的 `*` 表示适用于所有用户;如果需要针对特定用户,则将其替换为具体的用户名[^3]。
2. **验证 PAM 配置**
确保系统启用了 PAM(Pluggable Authentication Module),因为 `limits.conf` 的功能依赖于它。检查 `/etc/pam.d/common-session` 或其他相关会话配置文件是否存在以下行:
```bash
session required pam_limits.so
```
3. **重启服务或重新登录**
修改完成后,建议重启 SSH 服务或将服务器完全重启以便新设置生效:
```bash
systemctl restart sshd
```
如果不希望立即重启整个系统,也可以尝试注销当前会话后再重新登录[^1]。
#### 方法二:修改 `/etc/systemd/user.conf` 和 `/etc/systemd/system.conf`
对于基于 systemd 的现代 Linux 发行版,还可以通过调整 systemd 的全局配置达到相同目的:
1. **编辑 user.conf 和 system.conf**
使用文本编辑器打开这两个文件路径下的对应文档:
```bash
nano /etc/systemd/user.conf
nano /etc/systemd/system.conf
```
添加或更改下列选项至期望值:
```ini
DefaultLimitNOFILE=65535
```
2. **重载 systemd 配置**
完成上述操作之后记得刷新守护程序的状态使其识别新的设定:
```bash
systemctl daemon-reload
```
#### 方法三:创建自定义限制度量文件
有时可能已经存在某些预设好的度量标准覆盖了我们的改动,这时可以考虑新建一个独立的约束声明文件放置到专门目录里去规避冲突情况发生:
1. 创建一个新的 `.conf` 文件位于 `/etc/security/limits.d/` 下面比如命名为 `90-nproc.conf`:
```bash
echo "* soft nofile 65535" | sudo tee -a /etc/security/limits.d/90-nproc.conf
echo "* hard nofile 65535" | sudo tee -a /etc/security/limits.d/90-nproc.conf
```
2. 同样需注意同步更新关于 PAM 的部分以及最终测试效果是否符合预期[^4]。
---
```python
import os
def check_ulimit():
"""Check current ulimit settings."""
result = os.popen('ulimit -Sn').read().strip()
print(f'Soft limit (current): {result}')
result = os.popen('ulimit -Hn').read().strip()
print(f'Hard limit (current): {result}')
if __name__ == "__main__":
check_ulimit()
```
以上脚本可以帮助快速查看当前用户的软硬限制数值变化状况。
---
阅读全文
相关推荐




















