在Linux(例如Ubuntu 18.04或其他版本)中,通过阅读和写入getrlimit()
来setrlimit()
和/etc/security/limits.conf
工作吗?
我想了解getrlimit()
与setrlimit()
和/etc/security/limits.conf
之间的关系。感谢。
答案 0 :(得分:3)
事实上,情况恰恰相反:/etc/security/limits.conf
控制对getrlimit
和setrlimit
的调用。
getrlimit
和setrlimit
读取和写入与调用进程关联的内核状态。他们根本不访问任何文件。与大多数与特定进程关联的内核状态一样,资源限制是继承(复制到)fork
- ed children。
/etc/security/limits.conf
(除非系统升级);它旨在供系统管理员手动编辑。
login
程序(从技术上讲,它可能加载的pam_limits模块,并在Ubuntu 18的默认配置中加载)读取/etc/security/limits.conf
,并使用该文件中的信息进行对setrlimit
的一系列调用,为用户的初始shell建立资源限制。那些资源限制然后继承到shell启动的所有进程,依此类推。