OK, finalmente percebi isso. Os limites que eu estava definindo em /etc/security/limits.conf estavam sendo aplicados, mas eles não estavam sendo aplicados ao login gráfico. Isso pode ser verificado assim em uma janela de terminal:
$ ulimit -n
4096
$ su mkasberg
Password:
$ ulimit -n
65535
Mais pesquisas me levaram a este relatório de erros , que me mostrou a questão direção correta. Para modificar o limite que é usado pelo shell de login, precisamos adicionar a seguinte linha ao /etc/systemd/user.conf:
DefaultLimitNOFILE=65535
Essa alteração funciona, mas afeta apenas o limite flexível. (Deixando nos limites com um limite rígido de 4096 ainda.) Para afetar o limite rígido também, devemos modificar o /etc/systemd/system.conf com a mesma mudança.
As alterações que fiz no /etc/pam.d não foram necessárias. Pelo menos no Ubuntu, isso já está funcionando. Além disso, não foi necessário alterar as configurações de root
e *
no limits.conf. Alterar os limites para mkasberg
foi suficiente, pelo menos para o meu caso de uso.
Em resumo
Se você quiser aumentar o limite mostrado por ulimit -n
, deverá:
-
Modifique /etc/systemd/user.conf e /etc/systemd/system.conf com a seguinte linha (isso cuida do login gráfico):
DefaultLimitNOFILE=65535
-
Modifique /etc/security/limits.conf com as seguintes linhas (isto cuida do login não-GUI):
mkasberg hard nofile 65535 mkasberg soft nofile 65535