setrlimit函数限制进程资源
setrlimit
设置参数满足
struct rlimit{
rlim_t rlim_cur; // 软限制
rlim_t rlim_max; // 硬限制
}
可以设置的参数:
- RLIMIT_AS:进程总的可用的存储空间的大小。此外,自动堆栈扩展也将失败(并生成一个SIGSEGV,当没有备用堆栈可用时,它会终止进程)
- RLIMIT_CORE:核心文件的最大大小。当0时,不会创建任何核心转储文件。当非零时,较大的转储将被截断到此大小。
- RLIMIT_CPU:CPU时间的最大值(秒),当超过此软限制时,向该进程发送SIGXCPU信号。
- RLIMIT_DATA:数据段的最大字节长度。当进程通过brk()或sbrk()函数试图扩大其数据段至超过软限制时,这些函数调用将失败并返回ENOMEM错误。
- RLIMIT_FSIZE:可以创建的文件的最大字节长度。当超过此软限制时,则向该进程发送SIGXFSZ信号。
- RLIMIT_LOCKS:一个进程可持有的文件锁的最大数。
- RLIMIT_MEMLOCK:一个进程使用mlock能够锁定在存储器中的最大字节长度。
- RLIMIT_NOFILE:每个进程能打开最大文件数。更改此限制将影响到sysconf函数在参数_SC_OPEN_MAX返回的值。
- RLIMIT_NPROC:每个实际用户ID可拥有的最大子进程数。更改此限制将影响到sysconf函数在参数_SC_CHILD_MAX返回的值。
- RLIMIT_RSS:最大驻内存集的字节长度。(resident set size in bytes,RSS)
- RLIMIT_SBSIZE:用户在任一给定时刻可以占用的套接字缓冲区的最大长度。
- RLIMIT_STACK:栈的最大字节长度。在达到该极限时,产生SIGSEGV信号。
- RLIMIT_SWAP:用户可以使用最大的交换空间的大小
- RLIMIT_NICE:nice值设置的最大限制
补充
RLIMIT_CPU是限制cpu使用时间,不是cpu占用率,是限制CPU使用时间为多少秒以内。
分类:
操作系统
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构