Los sistemas operativos UNIX/Linux tienen la capacidad de limitar la cantidad de varios recursos del sistema disponibles para un proceso de usuario. Estas limitaciones incluyen cuántos archivos puede tener abierto un proceso, qué tamaño de archivo puede crear el usuario y cuánta memoria pueden usar los diferentes componentes del proceso, como la pila, los datos y los segmentos de texto. ulímite es el comando utilizado para lograr esto.
Para establecer el valor ulimit en un parámetro, use el siguiente comando.
# ulimit -p [new_value]
Para que los ulimits persistan entre reinicios, debemos establecer los valores de ulimit en el archivo de configuración /etc/security/limits.conf . Las configuraciones en /etc/security/limits.conf toman la siguiente forma:
# vi /etc/security/limits.conf #[domain] [type] [item] [value] * - core [value] * - data [value] * - priority [value] * - fsize [value] * soft sigpending [value] eg:57344 * hard sigpending [value] eg:57444 * - memlock [value] * - nofile [value] eg:1024 * - msgqueue [value] eg:819200 * - locks [value] * soft core [value] * hard nofile [value] @[group] hard nproc [value] [user] soft nproc [value] %[group] hard nproc [value] [user] hard nproc [value] @[group] - maxlogins [value] [user] hard cpu [value] [user] soft cpu [value] [user] hard locks [value]
[dominio] puede ser:
- un nombre de usuario
- un nombre de grupo, con la sintaxis @group
- el comodín * , para la entrada predeterminada
- el comodín % , también se puede usar con la sintaxis de %group, para el límite de maxlogin
[tipo] puede tener los dos valores:
- “suave ” por hacer cumplir los límites flexibles
- “difícil ” para hacer cumplir límites estrictos
[elemento] puede ser uno de los siguientes:
- núcleo – limita el tamaño del archivo principal (KB)
- datos – tamaño máximo de datos (KB)
- tamaño f – tamaño de archivo máximo (KB)
- bloqueo de memoria – espacio máximo de direcciones bloqueadas en la memoria (KB)
- sin archivo – número máximo de archivos abiertos
- rss – tamaño máximo del conjunto residente (KB)
- pila – tamaño máximo de pila (KB)
- procesador – tiempo máximo de CPU (MIN)
- nproc – número máximo de procesos
- como – límite de espacio de direcciones (KB)
- inicios de sesión máximos – número máximo de inicios de sesión para este usuario
- inicios de sesión maxsys – número máximo de inicios de sesión en el sistema
- prioridad – la prioridad para ejecutar el proceso de usuario con
- bloqueos – número máximo de bloqueos de archivos que el usuario puede mantener
- pendiente de firma – número máximo de señales pendientes
- cola de mensajes – memoria máxima utilizada por las colas de mensajes POSIX (bytes)
- agradable – máxima prioridad agradable permitida para elevar a valores:[-20, 19]
- rtprio – prioridad máxima en tiempo real
Se pueden encontrar más detalles en el siguiente comando:
# man limits.conf