ulimit
时间: 2025-05-23 09:20:26 浏览: 14
### 什么是 `ulimit` 命令以及如何设置用户进程限制?
`ulimit` 是一个 Shell 内置命令,主要用于查看或设置用户可以使用的系统资源上限。它可以通过调整软限制(soft limit)和硬限制(hard limit),控制诸如核心转储大小、打开文件数量、内存使用量等资源的分配。
#### 查看当前用户的资源限制
要查看当前用户的资源限制情况,可以直接执行以下命令:
```bash
ulimit -a
```
这将显示一系列资源及其对应的限制值[^3]。
#### 设置单个用户可开启的最大进程数
如果需要设置某个用户能够创建的最大进程数,可以使用 `-u` 参数。例如,将最大进程数限制为 500 可以这样操作:
```bash
ulimit -u 500
```
需要注意的是,这种设置仅对当前会话有效。一旦关闭终端窗口或退出登录,该设置就会失效[^4]。
#### 修改 `/etc/security/limits.conf` 实现持久化配置
为了让某些资源限制适用于整个系统中的特定用户或组,并且在重启后仍然保持不变,应该编辑 `/etc/security/limits.conf` 文件。以下是几个常见的例子:
- **限制某用户的核心文件大小**
```
username soft core 0
username hard core 0
```
- **允许某一用户最多同时运行多少个线程**
```
username soft nproc 1024
username hard nproc 2048
```
- **提高能打开的文件描述符数量**
```
* soft nofile 4096
* hard nofile 8192
```
这里的星号 (`*`) 表示应用到所有用户;而具体用户名则代表单独对该账户生效[^1]。
#### 结合 PAM 模块使更改生效
当更新了 limits.conf 后,在基于 pam_limits.so 的环境中还需要确保相应的 PAM 配置已启用才能让新设定起作用。一般情况下,默认安装好的 Linux 发行版已经包含了必要的支持无需额外动作[^4]。
#### 示例脚本:批量调整多个参数
下面给出一段简单的 bash 脚本来演示如何一次性改变多项数值:
```bash
#!/bin/bash
# Set maximum number of processes per user to 1024
ulimit -u 1024
# Allow each process up to 2GB RAM usage before being killed by OOM killer.
ulimit -m $((2 * 1024))
echo "New resource limits applied."
```
此脚本设置了每名用户的最大进程数为 1024 并规定任何程序占用超过 2 GB 物理内存时都将被终止。
---
阅读全文
相关推荐

















