我在这里看到过各种关于提高特定用户的 Linux 系统上的打开文件限制的帖子(根据所讨论的 Linux 发行版,具体执行方式有多种不同)。
我有一台运行 Dovecot 的 Ubuntu 8.04.4 LTS 服务器,用户名为“dovecot”;
ps aux | grep dovecot
dovecot 473 0.0 0.0 14320 2152 ? S 12:11 0:00 imap-login
dovecot 1619 0.0 0.0 14324 2096 ? S Jan25 0:05 imap-login
dovecot 2652 0.0 0.0 14180 1892 ? S 13:44 0:00 pop3-login
dovecot 3627 0.0 0.0 14180 1892 ? S 14:13 0:00 pop3-login
dovecot 3776 0.0 0.0 14180 1892 ? S 14:16 0:00 pop3-login
dovecot 4056 0.0 0.0 14320 2112 ? S 14:19 0:00 imap-login
.....
ps aux | grep dovecot | wc
178
如何提高服务的打开文件限制?我是否对运行服务的用户执行相同的操作来提高使用限制?
因此,在这个系统上,我可以增加 /etc/security/limits.conf 中对 dovecot 用户的限制,但这与我的服务有何关系?我是否需要重新启动服务才能使新设置生效,或者当新进程生成时,它们是否会继承新设置?
我看不出改变此限制将如何与长期运行的服务(而不是登录和退出的用户)联系起来。
答案1
“我是否对服务运行的用户执行相同的操作来提高使用限制?” - 是的。服务在用户的限制下运行,因此一旦提高限制并重新启动服务,它将具有新的限制。
答案2
对于 CentOS 7(我假设任何其他 systemd-converts 也是如此),您需要编辑服务文件。您可以使用它来简单地覆盖服务文件,以便升级安全:
systemctl edit dovecot.service
然后添加:
[Service]
LimitNOFILE=4096
将 4096 更改为您想要的任何值。