Я видел здесь различные сообщения о повышении лимита открытых файлов в системах Linux для конкретных пользователей (что выполняется разными способами в зависимости от обсуждаемого дистрибутива Linux).
У меня есть сервер Ubuntu 8.04.4 LTS, на котором запущен Dovecot, от имени пользователя 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, но как это будет относиться к моей службе. Нужно ли мне перезапускать службу, чтобы новые настройки вступили в силу, или при появлении новых процессов они унаследуют новые настройки?
Я не понимаю, как изменение этого лимита повлияет на долго работающую службу, а не на пользователя, который входит в систему и выходит из нее.
Для CentOS 7 (и я предполагаю, что любые другие системные преобразователи) вам необходимо отредактировать служебный файл. Вы можете использовать это, чтобы просто переопределить служебный файл, чтобы он был безопасным для обновления:
systemctl edit dovecot.service
А затем добавьте:
[Service]
LimitNOFILE=4096
Измените 4096 на все, что хотите.
«Выполняю ли я те же действия для увеличения пределов использования в отношении пользователя, от имени которого работает служба?» - Да. Служба работает в соответствии с ограничениями пользователя, поэтому после повышения ограничений и перезапуска службы у нее будут новые ограничения.