在 Debian(以及其他 Linux 发行版)里,ulimit 是用来限制单个进程(或 shell 启动的进程)可使用的系统资源的命令,通常针对当前 shell 会话及其子进程生效。
下面按常见类别说明 ulimit 能限制什么。
可通过 ulimit -a 查看当前限制。
ulimit -u
限制同一用户能创建的进程/线程总数。ulimit -v
限制进程可用虚拟地址空间(KB)ulimit -c
程序崩溃时 core dump 文件大小(0 表示不生成)ulimit -m
很多系统已忽略此限制ulimit -n
限制进程能打开的 file descriptor 数量(非常常用)ulimit -f
限制进程能创建的文件大小(blocks)ulimit -t
进程最多使用的 CPU 秒数,超时会被杀掉ulimit -i
ulimit -c
ulimit -s
ulimit -l
ulimit -q
示例:
ulimit -Sn 1024 # 软限制
ulimit -Hn 2048 # 硬限制
❌ 不能限制:
ulimit -n 65535
./my_server
/etc/security/limits.conf* soft nofile 65535
* hard nofile 65535
pam_limits.so 支持(登录 shell 生效)ulimit 对 systemd 服务不生效,要用:
[Service]
LimitNOFILE=65535
Debian 的 ulimit 用来限制“单个用户或进程”在 shell 环境下能使用的系统资源,比如文件数、内存、CPU、进程数,但不是系统级资源控制器。
如果你有具体场景(比如 Web 服务、数据库、Docker),我可以给你更精确的 ulimit 配置建议。