ulimit – ¿Cómo puedo aumentar el límite de archivos abiertos para un usuario no root?

Pregunta:

Esto está sucediendo en Ubuntu Release 12.04 (precisa) Kernel Linux de 64 bits 3.2.0-25-virtual

Estoy tratando de aumentar la cantidad de archivos abiertos permitidos para un usuario. Esto es para mi aplicación eclipse java donde el límite actual de 1024 no es suficiente.

Según las publicaciones que he encontrado hasta ahora, debería poder poner líneas en

/etc/security/limits.conf así:

soft nofile 4096
hard nofile 4096

para aumentar el número de archivos abiertos permitidos para todos los usuarios.

Pero eso no me funciona y creo que el problema no está relacionado con ese archivo.

Para todos los usuarios, el límite predeterminado es 1024, independientemente de lo que haya en /etc/security/limits.conf (reinicié después de cambiar ese archivo)

$ ulimit -n
1024

Ahora, a pesar de las entradas en /etc/security/limits.conf, no puedo aumentar eso:

$ ulimit -n 2048

-bash: ulimit: archivos abiertos: no se puede modificar el límite: operación no permitida La parte extraña es que puedo cambiar el límite hacia abajo , pero no puedo cambiarlo hacia arriba, incluso para volver a un número que está por debajo del límite original:

$ ulimit -n 800
$ ulimit -n
800

$ ulimit -n 900

-bash: ulimit: open files: cannot modify limit: Operation not permitted

Como root, puedo cambiar ese límite a lo que quiera, hacia arriba o hacia abajo. Ni siquiera parece importarle el límite supuestamente para todo el sistema en / proc / sys / fs / file-max

# cat /proc/sys/fs/file-max
188897

# ulimit -n 188898
# ulimit -n 
188898

Pero incluso si consigo que eclipse se ejecute como root, ¡mi aplicación aún falla debido a la excepción "Demasiados archivos abiertos"!

Hasta ahora, no he encontrado ninguna forma de aumentar el límite de archivos abiertos para un usuario no root.

¿Cómo debo hacer esto correctamente? He mirado varias publicaciones más, ¡pero no tuve suerte!

Respuesta:

El ulimit cambia de forma predeterminada los límites HARD, que usted (un usuario) puede reducir, pero no puede aumentar.

Utilice la opción -S para cambiar el límite SUAVE , que puede oscilar entre 0 y { DIFÍCIL }.

De hecho, he ulimit alias de ulimit a ulimit -S , por lo que se establece de forma predeterminada en los límites suaves todo el tiempo.

alias ulimit='ulimit -S'

En cuanto a su problema, le falta una columna en sus entradas en /etc/security/limits.conf .

Debería haber CUATRO columnas, pero falta la primera en su ejemplo.

* soft nofile 4096
* hard nofile 4096

La primera columna describe a QUIÉN se aplica el límite. '*' es un comodín, es decir, todos los usuarios. Para aumentar los límites de root , debe ingresar explícitamente 'root' en lugar de '*'.

También necesita editar /etc/pam.d/common-session* y agregar la siguiente línea al final:

session required pam_limits.so

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım