我需要在启动时将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的文件设置ulimit
和umask
的方法。 意思是,我编辑了/etc/init.d/httpd
并在其中包含了一个umask
和ulimit -s
configuration,解决了我的问题,所以我想这是一个很好的解决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或全系统范围。