ulimit 有哪些参数?

ulimit 有哪些参数?

我在示例中看到该-u选项与命令一起使用ulimit,但我找不到说明该选项含义的文档。man ulimit显示系统库函数的手册。它有哪些选项ulimit以及它们的含义是什么?

答案1

ulimit 命令是一个内置命令,它使用 man 描述的 C 函数:它自己的帮助包含在 Bash 手册页中,可以通过 访问man bash

您可以使用 列出所有可用的选项,并使用列出所有可用的限制类型及其当前值(取决于您的系统)来ulimit -h查看它们对应的含义:ulimit -a

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 20
file size               (blocks, -f) unlimited
pending signals                 (-i) 16382
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

答案2

ulimit必须是内置的 shell,因为它建立的限制适用于 shell 本身以及它启动的程序。唯一的便携的参数是-f(文件大小限制,以 512 字节为单位)。大多数 shell 都有更多选项,您需要查看 shell 文档才能确切了解它们是什么。对于可移植 shell(例如 bash 和 ksh),某些 unix 变体可能不支持限制,即使 shell 识别了相应的选项。

我见过的每个 shell 都支持的选项:

  • -H:与其他选项结合使用可仅设置或显示硬限制。
  • -S:与其他选项结合设置或仅显示软限制。
  • -c:最大核心文件大小(512 字节块)
  • -d:最大堆(数据段)大小(kB)
  • -f:最大文件大小(512 字节块)
  • -n:最大文件描述符数
  • -s:最大堆栈大小(kB)
  • -t:最大 CPU 时间(秒)

其他一些非常常见的选项:

  • -a:显示所有限制。
  • -m:最大物理内存大小(kB)
  • -v:最大虚拟内存大小(kB)

相关内容