增加Ubuntu / Upstart(initctl)的最大打开文件

这是在Ubuntu 12.04.3 LTS服务器上。

我已经将以下内容添加到/etc/security/limits.conf(我的Golang进程以root身份运行):

* hard nofile 50000 * soft nofile 50000 root hard nofile 50000 root soft nofile 50000 

我已经将以下内容添加到/etc/pam.d/common-session

 session required pam_limits.so 

我已经将以下内容添加到/etc/sysctl.conf中:

 fs.file-max = 50000 

然而,当我猫/ proc / {PID} /限制,我得到:

 Limit Soft Limit Hard Limit Units Max open files 1024 4096 files 

只有当我通过sudo initctl start service_name从Upstart启动进程才会发生这种情况。 如果我自己开始这个过程,它确认我的设置。

我该如何解决?

这需要被添加到你的Upstart脚本中才能工作:

 limit nofile 50000 50000 

“设计上,upstart并没有关注系统作业的/etc/security/limits.conf.PAM设置只适用于用户会话,而不适用于系统服务。 从https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/938669

资料来源:

https://github.com/saltstack/salt/issues/5323

http://bryanmarty.com/blog/2012/02/10/setting-nofile-limit-upstart/