OK, finalmente me di cuenta de esto. Los límites que estaba estableciendo en /etc/security/limits.conf se estaban aplicando, pero no se estaban aplicando al inicio de sesión gráfico. Esto se puede verificar así desde una ventana de terminal:
$ ulimit -n
4096
$ su mkasberg
Password:
$ ulimit -n
65535
Más investigación me llevó a este informe de error, que me indicó la dirección correcta. Para modificar el límite que utiliza el shell de inicio de sesión, debemos agregar la siguiente línea a /etc/systemd/user.conf :
DefaultLimitNOFILE=65535
Ese cambio funciona, pero solo afecta el límite suave. (Dejándonos con un límite máximo de 4096 aún). Para afectar también el límite estricto, debemos modificar /etc/systemd/system.conf con el mismo cambio.
Los cambios que hice en /etc/pam.d no eran necesarios. Al menos en Ubuntu, esto ya está funcionando. Además, no fue necesario cambiar la configuración de root y * en limites.conf. Cambio de límites para mkasberg fue suficiente, al menos para mi caso de uso.
En Resumen
Si desea aumentar el límite mostrado por ulimit -n , deberías:
-
Modificar
/etc/systemd/user.confy/etc/systemd/system.confcon la siguiente línea (esto se ocupa del inicio de sesión gráfico):DefaultLimitNOFILE=65535 -
Modificar
/etc/security/limits.confcon las siguientes líneas (esto se ocupa del inicio de sesión sin GUI):mkasberg hard nofile 65535 mkasberg soft nofile 65535 -
Reinicie su computadora para que los cambios surtan efecto.
No es necesario cambiar nada en el /etc/security/limits.conf archivo, se ignora si está utilizando systemd.
(reproduciendo una respuesta modificada a otra pregunta en la red...)
Una alternativa para aquellos que prefieren no editar el /etc/systemd/system.conf predeterminado y /etc/systemd/user/conf archivos:
-
crear un nuevo archivo
/etc/systemd/system.conf.d/limits.confcon estos contenidos:[Manager] DefaultLimitNOFILE=65535 -
ejecutar
systemctl daemon-reexeccomo root -
cerrar sesión y volver a iniciar sesión
-
comprueba tu nuevo límite con
ulimit -n.
Consulte el systemd-system.conf página de manual para más detalles.
TL;DRI sintió la necesidad de concentrar las respuestas, para que sean más fáciles de encontrar. Me tomó años juntar todas las piezas para que funcionara correctamente...
Hay 2 ubicaciones a considerar.
-
sesión GUI
$ grep DefaultLimitNOFILE /etc/systemd/system.conf DefaultLimitNOFILE=65535o mejor aquí:
$ grep NOFILE /etc/systemd/system.conf.d/limits.conf DefaultLimitNOFILE=65535 -
entorno de shell
$ grep nofile /etc/security/limits.conf user soft nofile 65535 user hard nofile 65535`o mejor aquí:
$ grep nofile /etc/security/limits.d/user.conf user soft nofile 65535 user hard nofile 65535 -
Después de modificar la configuración en los archivos anteriores, reiniciar y luego verifique los límites con:
ulimit -n -Hn -Sn