一、进程与信号之资源限制

进程资源函数

#include <sys/resource.h>
获取用户资源
int getrlimit(int resource,struct rlimit *rlptr);

设置用户资源
int setrlimit(int resource,struct rlimit *rlptr);

内核资源结构体
struct rlimit
{
      rlimit_t rlim_cur;/*soft limit:current limit**/ 软件资源
      rlimit_t rlim_max;/*hard limit;maximum value for rlim_cur**/ 硬件资源     
}
resource 取值
RLIMIT_AS       进程可用存储区大小
RLIMIT_CORE   core文件最大字节
RLIMIT_CPU     CPU时间最大值
RLIMIT_DATA   数据段最大长度
RLIMIT_FSIZE  可创建文件的最大值
RLIMIT_LOCKS 文件锁的最大数
RLIMIT_MEMLOCK 使用mlock能否在存储器中锁定最长字节数
RLIMIT_NOFILE   能打开的最大文件数
RLIMIT_NPROC 每个用户id可拥有的最大进程数
RLIMIT_RSS     最大驻存集的字节长度
RLIMIT_STACK 栈的最大长度

获取系统资源参数

#include <sys/resource.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define RLIMIT(name)        get_limit(#name,name)

void get_limit(char *name,int resource)
{
    struct rlimit limit;
    if(getrlimit(resource,&limit)<0)
    {
        printf("get limit resource error");
        return ;
    }
    printf("%-15s",name);
    if(limit.rlim_cur==RLIM_INFINITY)
    {
        printf(" infinity");
    }
    else
    {
        printf("%10ld",limit.rlim_cur);
    }
    if(limit.rlim_max==RLIM_INFINITY)
    {
        printf(" infinity\n");
    }
    else
    {
        printf("%10ld\n",limit.rlim_max);
    }
    return;
}

int main()
{
    RLIMIT(RLIMIT_AS);
    RLIMIT(RLIMIT_CORE);
    RLIMIT(RLIMIT_CPU);
    RLIMIT(RLIMIT_DATA);
    RLIMIT(RLIMIT_FSIZE);
    RLIMIT(RLIMIT_LOCKS);
    RLIMIT(RLIMIT_MEMLOCK);
    RLIMIT(RLIMIT_NOFILE);
    RLIMIT(RLIMIT_NPROC);
    RLIMIT(RLIMIT_RSS);
    RLIMIT(RLIMIT_STACK);
    return 0;
}

结果

RLIMIT_AS       infinity infinity
RLIMIT_CORE             0 infinity
RLIMIT_CPU      infinity infinity
RLIMIT_DATA     infinity infinity
RLIMIT_FSIZE    infinity infinity
RLIMIT_LOCKS    infinity infinity
RLIMIT_MEMLOCK      65536     65536
RLIMIT_NOFILE        1024     65536
RLIMIT_NPROC         3749      3749
RLIMIT_RSS      infinity infinity
RLIMIT_STACK      8388608 infinity

 linux系统资源限制配置

/etc/security/limits.conf

文件打开数限制
系统已存在,0,文件打开,1,文件输出,2,文件错误

 

 

 

 

转载于:https://www.cnblogs.com/peixiguang/p/5815609.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值