c - `getrlimit()` 和 `setrlimit()` 是否通过读取和写入 `/etc/security/limits.conf` 来工作?

标签 c linux limit

在 Linux(例如 Ubuntu 18.04 或其他)中,getrlimit()setrlimit() 通过读取和写入 /etc/security/来工作限制.conf?

我试图了解 getrlimit()setrlimit() 以及 /etc/security/limits.conf 之间的关系。谢谢。

最佳答案

事实上,情况正好相反:/etc/security/limits.conf 控制对 getrlimitsetrlimit 的调用。

getrlimitsetrlimit 读取和写入与调用进程关联的内核状态。他们根本不访问任何文件。与大多数与特定进程关联的内核状态一样,资源限制是继承(复制到)fork-ed children。

/etc/security/limits.conf 永远不会自动修改(除了可能通过系统升级);它供系统管理员手动编辑。

login程序(从技术上讲,它可能加载的 pam_limits 模块,并在 Ubuntu 18 的默认配置中加载)读取 /etc/security/limits.conf,并使用该文件中的信息进行一系列调用 setrlimit ,为用户的初始 shell 建立资源限制。然后,这些资源限制会继承到 shell 启动的所有进程,以此类推。

关于c - `getrlimit()` 和 `setrlimit()` 是否通过读取和写入 `/etc/security/limits.conf` 来工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50606753/

相关文章:

C作业帮助: Searching through arrays

php - 从服务器上的数据库获取输出,但不在 php 脚本上获取输出

c - 什么将被分配到指针 pfile 中?

c - 在 C : How do I check if an input file exist, 中,文件中的数字是 int 还是 float,以及它们是否在某个范围内?

mysql - 附加文件会导致碎片吗?

linux - clock_gettime() 是否适合亚微秒计时?

linux - 如何观察 MPI 程序所有进程的运行时间

mysql - 在同一个查询mysql中更新+排序

MySQL 对第二次加入查询的限制

c - 在 C 中将算术表达式应用于用户提供的 2 个二进制数的最佳方法是什么?