当你 fork 一个进程时如何设置 ulimit (fd)?

当你 fork 一个进程时如何设置 ulimit (fd)?

通常/etc/security/limits.h仅当您登录到 shell 时才有效。

Max open files那么在 Linux 中 fork 一个进程时, of的值/proc/PID/limits 由哪里控制呢?

答案1

我的理解是,子进程中的此类设置是从父进程继承的。此外,您可以使用 getrlimit()、setrlimit() 系统调用在进程中设置限制信息。

答案2

该文件/etc/security/limits.conf由 使用pam_limits

该命令ulimit是 shell 内置命令,可以修改限制通过上述 PAM 配置文件设置(除非您是 root 用户)。

您可以在“登录”或“ssh”等会话上应用这些限制。然后,PAM 将限制应用于此会话中启动的进程(和分叉进程)。它们是继承的。

答案3

Fork 将从分叉它的父级继承环境...如果对 fd 有限制,则应应用它。

相关内容