ulimit
是一个用于控制 shell 进程及其子进程资源使用的命令行工具。它可以限制诸如文件大小、CPU 时间、内存使用等资源。以下是如何使用 ulimit
限制进程资源的方法:
打开终端。
使用 ulimit
命令设置资源限制。以下是一些常见的限制选项:
-a
:显示当前所有资源限制。-c
:设置核心文件(core dump)的最大大小(以千字节为单位)。例如,要将核心文件大小限制为 64MB,请运行 ulimit -c 65536
。-d
:设置数据段的最大大小(以千字节为单位)。例如,要将数据段大小限制为 1024MB,请运行 ulimit -d 1048576
。-f
:设置单个文件的最大大小(以块为单位)。例如,要将单个文件大小限制为 1024MB,请运行 ulimit -f 1048576
。-l
:设置可加锁内存的最大大小(以千字节为单位)。例如,要将可加锁内存大小限制为 512MB,请运行 ulimit -l 524288
。-m
:设置进程的最大内存使用量(以千字节为单位)。例如,要将进程最大内存使用量限制为 1024MB,请运行 ulimit -m 1048576
。-n
:设置文件描述符的最大数量。例如,要将文件描述符数量限制为 256,请运行 ulimit -n 256
。-p
:设置管道缓冲区的最大大小(以字节为单位)。例如,要将管道缓冲区大小限制为 64KB,请运行 ulimit -p 65536
。-s
:设置栈的最大大小(以千字节为单位)。例如,要将栈大小限制为 1024MB,请运行 ulimit -s 1048576
。-t
:设置 CPU 时间的最大值(以秒为单位)。例如,要将 CPU 时间限制为 3600 秒(1小时),请运行 ulimit -t 3600
。-u
:设置用户进程的最大数量。例如,要将用户进程数量限制为 1024,请运行 ulimit -u 1024
。-v
:设置虚拟内存的最大大小(以千字节为单位)。例如,要将虚拟内存大小限制为 2048MB,请运行 ulimit -v 2097152
。-x
:设置进程的最大锁表长度(以千字节为单位)。例如,要将锁表长度限制为 256KB,请运行 ulimit -x 262144
。运行需要限制资源的进程。例如,要运行一个名为 myapp
的程序,请输入 ./myapp
。
请注意,ulimit
设置的资源限制仅适用于当前 shell 会话及其子进程。要永久更改资源限制,请将相应的 ulimit
命令添加到用户的 shell 配置文件(如 .bashrc
或 .bash_profile
)中。