如何在分叉进程时设置ulimit(fd)?

通常情况下/etc/security/limits.h只在login到shell时才起作用。

如何在Linux中分叉进程时, /proc/PID/limitsMax open files的值由哪个/proc/PID/limits控制?

我的理解是,子分叉中的这种设置是从父代inheritance的。 另外,您可以使用getrlimit(),setrlimit()系统调用来设置stream程中的限制信息。

文件/etc/security/limits.confpam_limits

ulimit命令是一个shell内置命令,可以在提到的PAMconfiguration文件设置的限制内(除非你是root用户)修改软限制和硬限制。

您可以在“login”或“ssh”等会话中应用这些限制。 然后,PAM会对此会话中启动的进程(和分支进程)应用限制。 他们是遗传的。

叉将从分叉它的父母那里inheritance环境…如果在fd上有限制,它应该被应用。