Хорошо, я наконец понял это. Ограничения, которые я устанавливал в /etc/security/limits.conf, применялись, но они не применялись для графического входа в систему. Это можно проверить следующим образом из окна терминала:
$ ulimit -n 4096 $ su mkasberg Password: $ ulimit -n 65535
Дополнительные исследования привели меня к этому отчету об ошибках, который указал мне правильное направление. Чтобы изменить ограничение, используемое оболочкой входа в систему, нам нужно добавить следующую строку в /etc/systemd/user.conf:
DefaultLimitNOFILE=65535
Это изменение работает, но влияет только на мягкое ограничение. (Оставляя нас ограниченным жестким лимитом 4096). Чтобы повлиять и на жесткий лимит, мы должны изменить /etc/systemd/system.conf с тем же изменением.
Изменения, которые я сделал в /etc/pam.d, не были необходимы. По крайней мере, в Ubuntu это уже работает. Кроме того, не было необходимости изменять настройки для root
и *
в limit.conf. Изменение пределов mkasberg
было достаточно, по крайней мере, для моего случая использования.
В итоге
Если вы хотите увеличить лимит, показанный на ulimit -n
, вы должны:
Измените /etc/systemd/user.conf и /etc/systemd/system.conf следующей строкой (это заботится о графическом входе в систему):
DefaultLimitNOFILE=65535
Измените /etc/security/limits.conf со следующими строками (это учитывает вход в систему без GUI):
mkasberg hard nofile 65535 mkasberg soft nofile 65535