ulimit PICKLE: “Operação não permitida” e “Comando não encontrado”

12

Estou tentando aumentar o número máximo de arquivos abertos para o usuário atual

> ulimit -n
1024

Eu tento aumentar e falhar da seguinte forma

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

Então, eu faço a coisa natural e tento executar com permissão temporária, mas falho

> sudo ulimit -n 4096
sudo: ulimit: command not found

Perguntas

  1. Como aumentar o ulimit?
  2. Por que isso está acontecendo?

Usando o Fedora 14

    
por paislee 14.02.2012 / 20:52

2 respostas

13

ulimit é um shell embutido, não um comando externo. Ele precisa ser construído porque age no próprio processo do shell, como cd : os limites, como o diretório atual, são uma propriedade desse processo em particular.

sudo bash -c 'ulimit -n 4096' funcionaria, mas alteraria o limite do processo bash invocado por sudo , o que não ajudaria você.

Existem dois valores para cada limite: o limite rígido e o limite flexível. Apenas root pode aumentar o limite rígido; qualquer um pode diminuir o limite rígido, e o limite flexível pode ser modificado em qualquer direção com a única restrição de que não pode ser maior que o limite rígido. O limite flexível é o valor real que importa.

Portanto, você precisa providenciar que todos os seus processos tenham um limite rígido para arquivos abertos de pelo menos 4096. Você pode manter o limite flexível em 1024. Antes de iniciar o processo que requer muitos arquivos, aumente o limite flexível. Em /etc/security/limits.conf , adicione as linhas

paislee hard nofile 4096
paislee soft nofile 1024

em que paislee é o nome do usuário no qual você deseja executar seu processo. No shell que inicia o processo para o qual você deseja um limite maior, execute

ulimit -Sn unlimited

para aumentar o limite suave para o limite rígido.

    
por 15.02.2012 / 07:42
2

abra o arquivo /etc/security/limits.conf e adicione a linha <user> soft nofile <value> . para usar ulimit change no usuário root e tente o mesmo.

    
por 14.02.2012 / 21:06