ulimit 有哪些参数?

Mne*_*nth 12 shell parameters ulimit

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

小智 10

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

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

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
Run Code Online (Sandbox Code Playgroud)

  • 请注意,并非所有地方都支持 `ulimit -h` —— 至少在 Bash 4.2.25 中不支持。 (2认同)

Gil*_*il' 8

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

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

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

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

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