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)。查看当前所有资源限制:
ulimit -a
设置单个文件的最大大小为 100 MB:
ulimit -f 209715200
设置每个用户可运行的最大进程数为 100:
ulimit -u 100
将硬限制设置为 2 GB 的虚拟内存:
ulimit -v 2147483648
请注意,这些设置通常只影响当前 shell 会话及其子进程。要永久更改这些限制,您可能需要修改系统配置文件(如 /etc/security/limits.conf)。