ulimit
是一个用于控制 shell 进程及其子进程可以使用的系统资源的命令。通过使用 ulimit
,你可以限制用户或进程的资源使用,从而防止资源耗尽。以下是一些常见的 ulimit
选项及其用途:
ulimit -f <size>
限制单个文件的最大大小(以块为单位)。例如,限制为 100MB:
ulimit -f 104857600
ulimit -u <number>
限制用户可以同时运行的最大进程数。例如,限制为 100:
ulimit -u 100
ulimit -n <number>
限制进程可以同时打开的最大文件数。例如,限制为 1024:
ulimit -n 1024
ulimit -v <size>
限制进程可以使用的最大虚拟内存(以 KB 为单位)。例如,限制为 512MB:
ulimit -v 524288
ulimit -t <seconds>
限制进程可以使用的最大 CPU 时间(以秒为单位)。例如,限制为 3600 秒(1 小时):
ulimit -t 3600
ulimit -d <size>
限制进程的数据段的最大大小(以 KB 为单位)。例如,限制为 256MB:
ulimit -d 268435456
ulimit -s <size>
限制进程的堆栈的最大大小(以 KB 为单位)。例如,限制为 8MB:
ulimit -s 8192
ulimit -c <size>
限制核心文件的最大大小(以块为单位)。例如,限制为 0(禁止生成核心文件):
ulimit -c 0
ulimit
命令设置的限制只在当前 shell 会话中有效。要永久设置限制,可以编辑 /etc/security/limits.conf
文件。例如:
# /etc/security/limits.conf
* soft nofile 1024
* hard nofile 2048
这将为所有用户设置软限制为 1024,硬限制为 2048。
/etc/security/limits.conf
后,需要重新登录或重启系统才能生效。通过合理使用 ulimit
,你可以有效地防止系统资源被耗尽,从而提高系统的稳定性和安全性。