setrlimit函数限制进程资源

setrlimit

设置参数满足

struct rlimit{
    rlim_t rlim_cur; // 软限制
    rlim_t rlim_max; // 硬限制
}

image

可以设置的参数:

  • 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使用时间为多少秒以内。

posted @   227569hy  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示