Comando ulimit: Guia Detalhado

O comando ulimit no Linux é usado para visualizar ou definir limites de recursos para processos de usuário. Esses limites incluem restrições suaves (soft limits), que são os valores atuais aplicados, e restrições duras (hard limits), que atuam como limites superiores que não podem ser ultrapassados pelos limites suaves. Se um processo exceder um limite suave, ele pode ser encerrado ou restringido.

Parâmetro Descrição
unlimited Remove restrições em recursos, exceto para o número máximo de arquivos abertos e procesos simultâneos.
-a Exibe todos os limites de recursos atuais.
-b Tamanho máximo do buffer de soquete.
-c Tamanho máximo do arquivo core em blocos.
-d Tamanho máximo do segmento de dados em kilobytes.
-f Tamanho máximo de arquivos criados pelo shell em blocos.
-h Define o limite duro para um recurso específico. Apenas usuários root podem aumentar limites duros.
-n Número máximo de arquivos abertos por processo.
-s Tamanho máximo da pilha em kilobytes.
-u Número máximo de processos por usuário.
-v Tamanho máximo da memória virtual em kilobytes.
-t Tempo máximo de CPU por processo em segundos.
-S Define o limite suave para um recurso. Se não especificado com -H, afeta ambos os limites.
-H Define o limite duro para um recurso.

Configuração Temporária

Para ajustar limites de recursos de forma temporária durante a sessão atual, utilize comandos ulimit diretamente no terminal. Essas alterações se aplicam apenas ao processo em execução e seus filhos, sendo revertidas após o logout.

ulimit -u 20480 # Limita processos por usuário a 20480
ulimit -n 8192 # Define máximo de 8192 arquivos abertos por processo
ulimit -d unlimited # Remove restrição no segmento de dados
ulimit -m unlimited # Sem limite para memória residente
ulimit -s unlimited # Permite pilha de tamanho ilimitado
ulimit -t unlimited # Tempo de CPU sem restrição
ulimit -v unlimited # Memória virtual sem limite

Configuração Permanente

Modificando variáveis de ambiente globais

Para tornar as confiugrações persistentes em todos os usuários, adicione os comandos ulimit em um script no diretório /etc/profile.d/ ou no arquivo ~/.bashrc do usuário.

# Editar ou criar o arquivo /etc/profile.d/ulimit.sh
ulimit -u 10000
ulimit -n 4096
ulimit -d unlimited
ulimit -m unlimited
ulimit -s unlimited
ulimit -t unlimited
ulimit -v unlimited

Editando o arquivo limits.conf

Outro método é configurar limites diretamente no arquivo /etc/security/limits.conf. Este arquivo permite definir limites por usuário ou grupo com sintaxe específica.

# Formato: <domínio> <tipo> <item> <valor>
# Domínio pode ser nome de usuário, grupo com @, ou wildcards como *.
# Tipo: soft para limite suave, hard para limite duro.
# Exemplos:
* soft nofile 4096
* hard nofile 8192
@developers soft nproc 2048
root hard cpu 60

Itens comuns incluem nofile para arquivos abertos, nproc para processos, e cpu para tempo de CPU. Para uma lista completa, consulte a documentação do sistema.

Observações Importantes

Em distribuições baseadas em Red Hat, como CentOS, a configuração de nproc via limits.conf pode não ser aplicada. Em vez disso, modifique o arquivo em /etc/security/limits.d/90-nproc.conf para ajustar limites de processos.

Publicado em 6-10 03:49 por Thomas