我正在努力解决这个问题,但我不明白为什么它不起作用。我希望有人能阐明这一点,否则,请给我一些调查途径的建议。
我有一个 Red Hat 7.3 系统(不要问),希望增加wls81
用户的打开文件限制。我以为我只是无法控制它,但它越来越看起来好像我只是遇到了我需要更改的用户的问题。我已将以下行添加到/etc/security/limits.conf
:
wls81 soft nofile 10100
wls81 hard nofile 10240
madhatta soft nofile 10100
madhatta hard nofile 10240
pam_limits.so
据我所知,正在被正确调用:
[madhatta@server madhatta]$ sudo grep limits /etc/pam.d/*
/etc/pam.d/login:session required /lib/security/pam_limits.so
/etc/pam.d/sshd:session required /lib/security/pam_limits.so
/etc/pam.d/su:session required /lib/security/pam_limits.so
/etc/pam.d/system-auth:session required /lib/security/pam_limits.so
当我以自己的身份 ssh 时,我得到了新的软限制,并且可以增加到硬限制:
desktop> ssh server
Last login: Thu May 10 13:20:13 2012 from a.b.c.d
[madhatta@server madhatta]$ ulimit -n
10100
[madhatta@server madhatta]$ ulimit -n 10200
[madhatta@server madhatta]$ ulimit -n
10200
[madhatta@server madhatta]$ ulimit -n 10300
bash: ulimit: cannot modify open files limit: Operation not permitted
但是当我以wls81
用户身份登录时,我不能:
desktop> ssh wls81@server
Last login: Wed May 9 22:29:33 2012 from a.b.c.d
[wls81@server wls81]$ ulimit -n
1024
[wls81@server wls81]$ ulimit -n 10000
bash: ulimit: cannot modify open files limit: Operation not permitted
当我su -
对每个用户时也会发生同样的情况。老实说,我不明白为什么这个用户不能ulimit
重置它。有人有想法么?
好吧,谜团就解开了。我发现当我这样做时
su - wls81
我得到了 1024 的限制,但是当我刚刚这样做时su wls81
我得到了新的、更高的限制。事实证明,wls81.bash_profile
调用了另一个脚本,该脚本又从系统上的一个完全不同的用户调用了一个环境设置脚本,它执行了一个ulimit -n 1024
.当我删除该行时,wls81 现在获得了新的限制。
我认为您可能还需要检查并可能为内核中的打开文件设置最大文件描述符:
并编辑 /etc/sysctl.conf 以使更改永久生效。