我们可以在/ etc / sysconfig / init文件中设置ulimit以在启动时应用该值

我需要在启动时将ulimit值设置为所有服务。 我在/etc/sysconfig/limits.conf中设置了值,但这些值在引导期间不适用,默认值为1024。

我已经在limits.conf中设置了值,还检查了/etc/pam.d/*是否包含“必需的pam_limits.so”条目,甚至/etc/security/limits.d/90-nproc.conf也没有默认值条目。

现在我find了另一种在启动时包含这个值的方法,我遇到了/ etc / sysconfig / init文件。 当我在这个文件中设置的值,所有的服务在启动时间得到期望值。

现在,我不确定对服务器的影响,以及在这个/ etc / sysconfig / init文件中应该忽略哪些configuration。 上面提到的这个文件或方法也有其他的select。

限制不是特定于服务或全系统的,而是针对个人帐户的。 /etc/security/limits.conf的软限制应该是在启动服务时显示的默认值; 这似乎并没有发生在你的情况,所以我会开始寻找运行有问题的服务的用户的点文件,或在有问题的服务的实际初始化脚本。 我有一种感觉,你的ulimit被设置在这两个地方之一,因此覆盖/etc/security/limits.conf值。

我已经使用了你正在讨论的为Apache用户创build的文件设置ulimitumask的方法。 意思是,我编辑了/etc/init.d/httpd并在其中包含了一个umaskulimit -sconfiguration,解决了我的问题,所以我想这是一个很好的解决scheme。 除了预期之外,没有任何影响。

PAM使用文件/etc/security/limits.conf ,但是当用户login时使用PAM。但是,当服务启动时,它不经过PAM,所以limits.conf不起作用。 服务由init系统启动,其设置取决于所使用的系统。 如果您使用的是新贵,可以在/etc/sysconfig/init系统范围内或在/etc/sysconfig/<servicename>每项服务中设置。 在systemd世界中,可以通过usint Limit<type>=在服务文件中设置ulimits,我不知道如何在系统范围内做到这一点。 使用OpenRC,您可以在/etc/rc.conf设置rc_ulimit= per service或全系统范围。