El comando ulimit permite a los usuarios ver o reducir sus límites para el shell actual. Solo el usuario raíz puede aumentar las restricciones por encima del límite estricto especificado. Los límites establecidos también se aplican a cualquier proceso secundario del shell. La página de manual de shell proporciona más información sobre el uso del comando ulimit, a continuación se incluye un extracto de la página de manual de bash:
ulimit [-HSTabcdefilmnpqrstuvx [limit]] Provides control over the resources available to the shell and to processes started by it, on systems that allow such control. Options are interpreted as follows: -a All current limits are reported -b The maximum socket buffer size -c The maximum size of core files created -d The maximum size of a process’s data segment -e The maximum scheduling priority ("nice") -f The maximum size of files written by the shell and its children -i The maximum number of pending signals -l The maximum size that may be locked into memory -m The maximum resident set size (many systems do not honor this limit) -n The maximum number of open file descriptors (most systems do not allow this value to be set) -p The pipe size in 512-byte blocks (this may not be set) -q The maximum number of bytes in POSIX message queues -r The maximum real-time scheduling priority -s The maximum stack size -t The maximum amount of cpu time in seconds -u The maximum number of processes available to a single user -v The maximum amount of virtual memory available to the shell -x The maximum number of file locks -T The maximum number of thread
La sintaxis del comando ulimit es:
# ulimit [options] [limit]
Los usuarios rara vez usan el comando ulimit para limitar su propia cuenta, por lo que las opciones para este comando no son tan importantes como comprender lo que muestra el resultado. Además, algunos de los límites rara vez se utilizan. Los límites comúnmente utilizados se describen en la siguiente tabla:
Límite | Descripción |
---|---|
fsize | Tamaño de archivo máximo permitido en memoria |
procesador | Tiempo de CPU máximo permitido |
nproc | Número máximo de procesos que se ejecutan simultáneamente |
inicios de sesión máximos | Número máximo de inicios de sesión simultáneos |
Por ejemplo, para establecer un límite para el número máximo de descriptores de archivos abiertos:
# ulimit -n 512
Puede mostrar todos los límites actuales emitiendo:
# ulimit -a
Si encuentra el siguiente error al ejecutar el comando ulimit:
ulimit: command not found
puede intentar instalar el siguiente paquete según su elección de distribución:
Distribución | Comando |
---|---|
OS X | instalar cerveza bash |
Debian | apt-get install bash |
Ubuntu | apt-get install bash |
Alpino | apk agregar bash |
Arco Linux | pacman -S bash |
Kali Linux | apt-get install bash |
Cent OS | yum instalar bash |
Fedora | dnf instalar bash |
Raspbian | apt-get install bash |
Ejemplos de comandos ulimit
1. Obtenga las propiedades de todos los límites de usuarios:
# ulimit -a
2. Obtenga un límite estricto para la cantidad de archivos abiertos simultáneamente:
# ulimit -H -n
3. Obtenga un límite suave para la cantidad de archivos abiertos simultáneamente:
# ulimit -S -n
4. Establecer el límite máximo de procesos por usuario:
# ulimit -u 30
5. Establezca el límite de tamaño de volcado del núcleo en n bloques de 512 bytes:
# ulimit –c n
6. Establezca el límite de tamaño del área de datos en n kilobytes:
# ulimit -d n
7. Establezca el límite de escritura del archivo de proceso secundario en n bloques de 512 bytes (predeterminado):
# ulimit -f n
8. Establezca el límite de tamaño de la memoria física en n kilobytes:
# ulimit -m n
9. Establezca el límite de tamaño del área de pila en n kilobytes:
# ulimit -s n
10. Establezca el límite de tiempo del proceso en n segundos:
# ulimit -t n