我在示例中看到该-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)