Ubuntu配置open files不生效

目录

问题解决

ulimit扩展

ulimit命令 

ulimits.conf文件

问题解决

直接在/etc/security/limits.conf中修改,或者在/etc/security/limits.d/下新建文件进行配置,都应该是OK的。

但是,在上述两处追加如下配置,一直不生效。

*           soft    nofile  10240
*           hard    nofile  65536

我们知道配置环境变量需要source一下(或者重新登录),配置/etc/sysctl.conf执行sysctl -p生效。那么,配置了limit参数后如何生效呢?重新登录(通过远程访问服务(openssh)、本地console登录都可以,但是 su - 切换是不可以的)!

但是,重新登录执行ulimit -n回显仍然是1024(而非10240)

重新登录生效的原因:

limits.conf是由PAM模块pam_limits.so来加载的,通过ssh访问(sshd_config需配置UsePAM yes)会调用sshd PAM,里面包含:session    required     pam_limits.so;同样,console本地登录会调用login PAM,login同样包含session    required   pam_limits.so。而su切换回调用su PAM 它里面(以及su-pam调用的其他pam里也没有)

截至目前,我们仍然没有解决Ubuntu上,配置 

*           soft    nofile  10240
*           hard    nofile  65536

不生效的问题。先上解决方法:

*           soft    nofile  10240
*           hard    nofile  65536
root           soft    nofile  10240
root           hard    nofile  65536

原因:

*只对非 root 用户起作用。而 root 用户的限制,必须显式添加。

ulimit扩展

ulimit 用来限制每个用户可使用的资源。

设置limit的三种方法:

  • 可以通过ulimit命令做临时设置
  • 也可以通过配置文件(limits.conf)永久设置。
  • 当然,也可以配置到/etc/profile(也就是每次加载profile都执行一次ulimit命令~~)
# 临时设置soft nofile 为65535(当然只会在当前用户下生效)
ulimit -Sn 65535
# 永久性配置soft nofile 为65535 --- limits.conf方式
vi /etc/security/limits.conf
……
*           soft    nofile  10240
# 永久性配置soft nofile 为65535 --- profile方式
vi /etc/profile
……
ulimit -Sn 65535

ulimit命令 

ulimit [-SHcdefilmnpqrstuvx] [limit]

参数 S 表示设置软限制(超过限制值会报警);参数 H 表示设置硬限制(不能超过限制值);当都不指定时,表示设置软限制和硬限制均为指定值。不指定[limit]值则代表查询,且默认查询软限制,如:ulimit -a等同于ulimit -Sa,查询硬限制使用 ulimit -Ha。

  • 参数 a: 列出所有当前资源极限值
  • 参数 c:设置core文件的最大值,单位:blocks
  • 参数 d:每个进程数据段的最大值,单位:kbytes
  • 参数 f:当前 shell 可创建的文件size的最大值,单位:blocks
  • 参数 i:待处理的信号最大值
  • 参数 l:可以锁定的物理内存的最大值,单位:kbytes
  • 参数 m:可以使用的常驻内存的最大值,单位:kbytes
  • 参数 n:每个进程可以同时打开的最大文件数
  • 参数 p:管道的最大值,单位:512 bytes
  • 参数 q:POSIX的消息队列的最大值,单位:kbytes
  • 参数 s:堆栈的最大值,单位:kbytes
  • 参数 t:每个进程可以使用 CPU 的最大时间,单位:seconds
  • 参数 u:每个用户运行的最大进程并发数
  • 参数 v:当前 shell 可使用的最大虚拟内存,单位:kbytes
  • 参数 x:所能锁住的文件的最大个数

ulimits.conf文件

<domain> <type> <item> <value> domain 是指生效实体
    用户名                                  :a username
    <min_uid>:<max_uid>         :an uid range
    @group 指定用户组             :a groupname, with @group syntax.
    @<min_gid>:<max_gid>      : a gid range
    * 表示默认值
    %:<gid>                                :只对maxlogins生效
    %group                                 : 同上
type 指限制类型
    soft 软限制
    hard 硬限制
item 限制资源
    core 同 ulimit -c
    data 同 ulimit -d
    fsize 同 ulimit -f
    memloc 同 ulimit -l
    nofile 同 ulimit -n
    stack 同 ulimit -s
    cpu 同 ulimit -t
    nproc 同 ulimit -u
    maxlogins 指定用户可以同时登录的数量
    maxsyslogins 系统可以同时登录的用户数
    priority 用户进程运行的优先级
    locks 用户可以锁定的文件最大值
    sigpengding 同 ulimit -i
    msgqueue 同 ulimit -q

举例:
           *               soft    core            0
           *               hard    nofile          512
           @student        hard    nproc           20
           @faculty        soft    nproc           20
           @faculty        hard    nproc           50
           ftp             hard    nproc           0
           @student        -       maxlogins       4
           :123            hard    cpu             5000
           @500:           soft    cpu             10000
           600:700         hard    locks           10
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值