debian

ulimit如何限制进程资源使用

小樊
37
2025-06-11 00:42:56
栏目: 编程语言

ulimit 是一个用于控制 shell 进程及其子进程资源使用的命令行工具。它可以限制诸如文件大小、CPU 时间、内存使用等资源。以下是如何使用 ulimit 限制进程资源的方法:

  1. 打开终端。

  2. 使用 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
  3. 运行需要限制资源的进程。例如,要运行一个名为 myapp 的程序,请输入 ./myapp

请注意,ulimit 设置的资源限制仅适用于当前 shell 会话及其子进程。要永久更改资源限制,请将相应的 ulimit 命令添加到用户的 shell 配置文件(如 .bashrc.bash_profile)中。

0
看了该问题的人还看了