我有以下几行/etc/security/limits.conf
* soft nofile 32768
* hard nofile 65536
root soft nofile 32768
root hard nofile 65536
pam_limits.so
以下每个文件都需要该文件。
/etc/pam.d/common-session
/etc/pam.d/cron
/etc/pam.d/login
/etc/pam.d/sshd
/etc/pam.d/su
/etc/pam.d/sudo
ulimit -n
登录时(以及启动时启动的服务)仍然显示 1024。
我错过了什么?
答案1
对于 init.d 中的服务,您不能使用 /etc/security/limits.d inittab 不会读取该文件,并且它基于 pam.d,而 pam.d 未在初始化启动脚本中使用。所有 init 启动脚本都源自 /etc/init.d/functions,因此对于所有服务,您都可以破解该脚本并在那里设置限制。当我需要 {httpd、一些破旧的 oracle stuf} 等时,我曾经破解特定服务的 /etc/sysconfig 希望这能有所帮助。
答案2
Ubuntu 14.04
必须在 /etc/security/limits.conf 中添加“hard”和“soft”条目,以便 pam 识别 rtprio (-r) 和 memlock (-l) 的设置。
答案3
您是否检查过您没有其他配置文件/etc/security/limits.d/
?
您是否尝试过用它来增加它ulimit
?
$ ulimit -n 4096
$ ulimit -n
4096
保存后必须再次登录。启动 shell 是不够的,它必须是登录 shell。
答案4
如果你是root,请执行以下命令
ulimit -SHn 65535
如果您想要永久设置它,特别是针对特定用户,请更改文件 /etc/security/limits.conf 以包含以下行(假设用户 = www-data)
例如
www-data hard nofile 65535
www-data soft nofile 65535
并确保在完成上述步骤后,从 /etc/pam.d 下的不同文件中取消注释 pam_limits.so,例如 sudo、login、sshd 等。
最后重新启动系统