De acuerdo con la documentación del núcleo , /proc/sys/file-max
es el número máximo, total y global de descriptores de archivo que el núcleo asignará antes de la asfixia. Este es el límite del núcleo, no el de su usuario actual. Por lo tanto, puede abrir 590432, siempre que esté solo en un sistema inactivo (modo de usuario único, sin demonios en ejecución).
Tenga en cuenta que la documentación no está actualizada: el archivo ha estado proc/sys/fs/file-max
durante mucho tiempo. Gracias a Martin Jambon por señalar esto.
La diferencia entre límites blandos y duros se responde aquí, en SE . Puede aumentar o disminuir un límite flexible como usuario normal, siempre que no sobrepase el límite rígido. También puede reducir un límite rígido (pero no puede aumentarlo nuevamente para ese proceso). Como superusuario, puede aumentar y disminuir los límites tanto duros como blandos. El esquema de límite doble se utiliza para aplicar políticas del sistema, pero también permite a los usuarios comunes establecer límites temporales para sí mismos y luego modificarlos.
Tenga en cuenta que si intenta reducir un límite rígido por debajo del límite flexible (y usted no es el superusuario), EINVAL
volverá (argumento no válido).
Entonces, en su caso particular, ulimit
(que es lo mismo que ulimit -Sf
) dice que no tiene un límite flexible en el tamaño de los archivos escritos por el shell y sus subprocesos . (Esa es probablemente una buena idea en la mayoría de los casos)
Su otra invocación ulimit -Hn
informa sobre el -n
límite (número máximo de descriptores de archivo abiertos), no el -f
límite, por lo que el límite flexible parece más alto que el límite rígido. Si ingresas ulimit -Hf
también obtendrás 'ilimitado'.
/proc/sys/fs/file-max
.