从boot / init中删除ulimit

在从版本6的CentOs中,每个用户都有默认的进程限制1024,例如/etc/security/limits.d/90-nproc.conf

* soft nproc 1024 

我必须执行后端服务/守护进程“myservice”,这需要在进程限制中有更大的值。 所以我必须覆盖预先configuration的限制(1024)。 为此,我尝试为root和myuser(运行myservice的用户)创build单独的条目。

 myuser soft nproc 5000 root soft nproc 5000 

接着

 service myservice restart 

现在限制增加了,似乎这个问题已经解决了! 但它是暂时的,系统重新启动后,限制再次到1024.( 注: myservice被configuration为在启动时启动)

这似乎是由于init进程负责启动系统上的每个服务,因此“myserivce”作为subprocessinheritance了父进程的限制(init默认有1024个限制)。

我search了一下,发现是否有办法增加init的限制,但没有足够的幸运find任何! 我试图改变/ etc / security / limits.d / 90-nproc.conf

 * soft nproc 5000 

但仍然相同,重新启动后,init仍然有1024个限制,myservice也有1024个限制

注:如果我从shell提示符重新启动myservice,那么它会得到接受的限制(5000),但我想每次重新启动后自动启动它。

有人可以指导我,我可以如何增加“myservice”的进程限制,并重新启动后保存它?

我认为你的问题可能是双重的。 你似乎只是增加软限制,而不是硬限制。 如果硬限制默认值低于定义的软限制,我认为您将继续受到较低值的限制。

此外,这些是每个用户的限制,但不一定是内核的系统configuration限制。 您可能需要使用适当的sysctl命令来设置值。 (使其在/etc/sysctl.conf/etc/sysctl.conf

例如,这将为文件描述符设置内核的最大值。 (内核跟踪打开文件的过程,所以这个相同的键与两个ulimit值都是相关的。

 sysctl -w fs.file-max=10000 

(我认为这可能是基于省略而在当前configuration中缺乏持久性的部分。)

然后,您可以在/etc/security/limits.conf设置每个用户的限制。

 * soft nofile 2500 * hard nofile 5000 

/etc/security/limits.d/90-nproc.conf

 * soft nproc 2500 * hard nproc 5000 

这些值当然只是示例,您可以用您的用户replace星号。