13

这是在 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

然而,当我 cat /proc/{PID}/limits 时,我得到:

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

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

我该如何解决?

4

1 回答 1

18

这需要添加到您的 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/

于 2013-11-15T07:59:24.463 回答