7847

39 分钟

#Bash 的 prlimit 命令

prlimit [OPTION]... [CMD [ARG]...]

功能

查看或设置进程资源限制。

类型

可执行文件(/usr/bin/prlimit),属于 util-linux

参数

  • OPTION 选项:
    • --noheadings - 不显示标题行(列名)
    • -o, --output list - 打印指定的列
    • -p, --pid - 指定要操作的进程 ID;如果没有这个选项则运行 CMD
    • --raw - 以原始格式输出
    • --verbose - 打印详细信息
    • -h, --help - 显示帮助
    • -V, --version - 显示版本
    • -c, --core[=limits] - 核心转储文件的最大大小
    • -d, --data[=limits] - 最大数据大小
    • -e, --nice[=limits] - 允许提升的最高 nice 优先级
    • -f, --fsize[=limits] - 最大文件大小
    • -i, --sigpending[=limits] - 待处理信号的最大数量
    • -l, --memlock[=limits] - 内存锁定地址空间的最大范围
    • -m, --rss[=limits] - 最大常驻集大小
    • -n, --nofile[=limits] - 最大文件打开数量
    • -q, --msgqueue[=limits] - POSIX 消息队列中的最大字节数
    • -r, --rtprio[=limits] - 最高实时优先级
    • -s, --stack[=limits] - 栈的最大尺寸
    • -t, --cpu[=limits] - CPU 时间(秒)
    • -u, --nproc[=limits] - 最大进程数
    • -v, --as[=limits] - 地址空间限制
    • -x, --locks[=limits] - 可持有文件锁的最大数量
    • -y, --rttime[=limits] - 实时任务超时时间
  • CMD - 要执行的命令;
  • ARG - 命令的参数列表

#列名

列名说明
DESCRIPTION资源描述
RESOURCE资源名称
SOFT软限制
HARD硬限制
UNITS单位

#示例

查看限制

$ prlimit       # 查看当前 SHELL 的限制,等价于 prlimit -i $$
RESOURCE   DESCRIPTION                              SOFT       HARD UNITS
AS         address space limit                 unlimited  unlimited bytes
CORE       max core file size                          0  unlimited bytes
CPU        CPU time                            unlimited  unlimited seconds
DATA       max data size                       unlimited  unlimited bytes
FSIZE      max file size                       unlimited  unlimited bytes
LOCKS      max number of file locks held       unlimited  unlimited locks
MEMLOCK    max locked-in-memory address space 1823780864 1823780864 bytes
MSGQUEUE   max bytes in POSIX mqueues             819200     819200 bytes
NICE       max nice prio allowed to raise              0          0
NOFILE     max number of open files                 1024    1048576 files
NPROC      max number of processes                 55346      55346 processes
RSS        max resident set size               unlimited  unlimited bytes
RTPRIO     max real-time priority                      0          0
RTTIME     timeout for real-time tasks         unlimited  unlimited microsecs
SIGPENDING max number of pending signals           55346      55346 signals
STACK      max stack size                        8388608  unlimited bytes

修改限制

$ prlimit -n=10 -p $$               # 当前 SHELL 最多允许打开 10 个文件
$ prlimit -n -p $$                  # 查看当前 SHELL 最多允许打开的文件数量
RESOURCE DESCRIPTION              SOFT HARD UNITS
NOFILE   max number of open files   10   10 files
  • $$ 是当前 SHELL 的 PID

在限制下运行程序

prlimit --v=500M -- ./my_program    # 运行 my_program 时地址空间限制为 500M,即最多只能使用 500M 内存

#推荐阅读

#手册

更新: 2026/3/3

作者: PlanC

创建: 2026/3/3