温馨提示×

ulimit命令行参数有哪些

小樊
43
2025-12-27 09:18:16
栏目: 编程语言

ulimit 是一个用于控制 shell 进程资源使用的命令行工具。它允许用户设置或查看各种资源限制,如文件大小、进程数等。以下是一些常用的 ulimit 命令行参数:

查看当前资源限制

  • -a:显示所有当前资源限制。

设置资源限制

  • -c <core file size>:设置核心转储文件的最大大小(以 blocks 为单位)。
  • -d <data seg size>:设置数据段的最大大小(以 KB 为单位)。
  • -f <file size>:设置单个文件的最大大小(以 blocks 为单位)。
  • -l <max locked memory>:设置可锁定内存的最大大小(以 KB 为单位)。
  • -m <max resident set size>:设置进程在内存中可使用的最大驻留集大小(以 KB 为单位)。
  • -n <open files>:设置每个进程可打开的最大文件数。
  • -p <pipe size>:设置管道缓冲区的最大大小(以 512 字节块为单位)。
  • -s <stack size>:设置栈的最大大小(以 KB 为单位)。
  • -t <cpu time>:设置进程允许使用的最大 CPU 时间(以秒为单位)。
  • -u <processes per user>:设置每个用户可运行的最大进程数。
  • -v <virtual memory>:设置虚拟内存的最大大小(以 KB 为单位)。

其他选项

  • -H:设置硬限制(hard limit),即不可更改的限制。
  • -S:设置软限制(soft limit),即可以更改的限制,但不能超过硬限制。
  • -X:设置硬限制(hard limit)。
  • -x:设置软限制(soft limit)。

示例

  1. 查看当前所有资源限制:

    ulimit -a
    
  2. 设置单个文件的最大大小为 100 MB:

    ulimit -f 209715200
    
  3. 设置每个用户可运行的最大进程数为 100:

    ulimit -u 100
    
  4. 将硬限制设置为 2 GB 的虚拟内存:

    ulimit -v 2147483648
    

请注意,这些设置通常只影响当前 shell 会话及其子进程。要永久更改这些限制,您可能需要修改系统配置文件(如 /etc/security/limits.conf)。

0