通常/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 有限制,则应应用它。