在 Ubuntu 系统中,ulimit
是一个用于控制 shell 进程资源使用的命令行工具。ulimit
可以设置软限制(soft limit)和硬限制(hard limit)。软限制是可以由用户自己调整的限制,而硬限制是系统管理员设置的最大限制,用户无法超过这个限制。
要设置硬限制,你需要使用 ulimit
命令的 -H
选项来指定硬限制。以下是一些常见的资源类型和相应的 ulimit
命令示例:
文件大小(以字节为单位):
ulimit -Hf <size_in_bytes>
进程数:
ulimit -Hn <number_of_processes>
打开文件描述符的数量:
ulimit -Hn <number_of_open_files>
CPU 时间(以秒为单位):
ulimit -Ht <cpu_time_in_seconds>
内存大小(以千字节为单位):
ulimit -Hm <memory_size_in_kb>
堆栈大小(以千字节为单位):
ulimit -Hs <stack_size_in_kb>
核心文件大小(以块为单位):
ulimit -Hc <core_file_size_in_blocks>
数据段大小(以千字节为单位):
ulimit -Hd <data_segment_size_in_kb>
最大用户进程数:
ulimit -Hu <maximum_user_processes>
最大文件大小(以块为单位):
ulimit -Hs <maximum_file_size_in_blocks>
请注意,这些设置通常只对当前 shell 会话有效。如果你希望永久更改这些限制,你需要编辑系统配置文件,例如 /etc/security/limits.conf
。
在 /etc/security/limits.conf
文件中,你可以添加如下行来设置硬限制:
* hard nofile <number_of_open_files>
* hard nproc <number_of_processes>
* hard memlock unlimited
这里的 *
表示所有用户,你可以根据需要替换为特定的用户名。nofile
控制打开文件描述符的数量,nproc
控制进程数,memlock
控制可锁定的内存大小。
编辑完 /etc/security/limits.conf
文件后,你需要重新登录或重启系统以使更改生效。