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)中。