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.conf
y/etc/systemd/system.conf
con la siguiente línea (esto se ocupa del inicio de sesión gráfico):DefaultLimitNOFILE=65535
-
Modificar
/etc/security/limits.conf
con 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.conf
con estos contenidos:[Manager] DefaultLimitNOFILE=65535
-
ejecutar
systemctl daemon-reexec
como 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=65535
o 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