![非交互式会话中 sh 命令的 nofile 限制未改变](https://linux22.com/image/1117936/%E9%9D%9E%E4%BA%A4%E4%BA%92%E5%BC%8F%E4%BC%9A%E8%AF%9D%E4%B8%AD%20sh%20%E5%91%BD%E4%BB%A4%E7%9A%84%20nofile%20%E9%99%90%E5%88%B6%E6%9C%AA%E6%94%B9%E5%8F%98.png)
运行 12.04.3 LTS
向队列提交批处理作业的用户收到了
'too many open files error'
调查建议更改/etc/security/limits.conf
已为所有用户和 root 完成的文件,分别指定 65536 的硬限制。ulimit -a
返回 65536 的限制。此外/etc/pam.d/ common-session
,、、common-session-noninteractive
login 和 ssh 文件都已pam_limits.so
添加所需的行会话。
/proc/pid/limits
问题仍然存在,在查看使用 列出的进程文件时可以看到lsof
。这里,nofile
命令下作为 sh 列出的进程的限制仍然是软限制 1024 和硬限制 4096,这是原始系统默认值。其他进程(例如使用命令的进程)的限制grep
已更改为新的 65536 限制。
按照编写的说明,正在运行的脚本需要短时间内打开大量文件,从中收集各个条目并将其传输到另一个复合文件。故障总是发生在第 512 个文件处,这似乎表明它已达到极限。
需要进行哪些更改才能增加 sh 下的命令的限制?