ulimit
是一个用于控制 shell 进程资源限制的命令行工具。在 CentOS 系统中,你可以使用 ulimit
来限制用户或进程的资源使用,例如文件描述符、进程数等。以下是一些常用的 ulimit
使用技巧:
查看当前资源限制:
使用 ulimit -a
命令可以查看当前 shell 进程的所有资源限制。
限制文件描述符数量:
使用 ulimit -n <number>
命令可以设置一个进程可以打开的最大文件描述符数量。例如,要将最大文件描述符数量设置为 4096,可以执行 ulimit -n 4096
。
限制进程数:
使用 ulimit -u <number>
命令可以设置一个用户可以同时运行的最大进程数。例如,要将最大进程数设置为 512,可以执行 ulimit -u 512
。
限制CPU时间:
使用 ulimit -t <seconds>
命令可以设置一个进程可以使用的最大CPU时间(单位:秒)。例如,要将最大CPU时间设置为 3600 秒,可以执行 ulimit -t 3600
。
限制内存使用:
使用 ulimit -v <kilobytes>
命令可以设置一个进程可以使用的最大虚拟内存(单位:KB)。例如,要将最大虚拟内存设置为 512000 KB,可以执行 ulimit -v 512000
。
限制输出文件大小:
使用 ulimit -f <blocks>
命令可以设置一个进程可以创建的最大文件大小(单位:512字节块)。例如,要将最大文件大小设置为 1024000 个512字节块,可以执行 ulimit -f 1024000
。
临时修改资源限制:
通过以上命令设置的资源限制仅在当前 shell 会话中生效。如果你想永久修改资源限制,可以将相应的 ulimit
命令添加到 /etc/security/limits.conf
文件中。
在脚本中使用 ulimit
:
你可以在 shell 脚本中使用 ulimit
命令来限制脚本中运行的进程的资源使用。例如,在脚本开头添加 ulimit -n 4096
可以限制脚本中所有进程的最大文件描述符数量为 4096。
请注意,某些资源限制可能需要 root 权限才能修改。在使用 ulimit
时,请确保你有足够的权限。