como alterar o número máximo de processo de fork por usuário no linux

6

Sempre que faço login no shell, recebo esse erro

-bash: fork: Resource temporarily unavailable
-bash-3.2$

Não consigo executar nenhum comando que use fork() .

Eu tentei ulimit -u porque ele não usa fork e retornou 35 . De alguma forma, meu processo max é definido como 35 .

Eu quero aumentar isso, mas não sei onde fazer essa alteração.

    
por user1146320 02.03.2013 / 03:06

6 respostas

10

Se você quiser alterar o limite apenas para esse shell, poderá executar:

sudo ulimit -u 1000

Se você quiser fazer uma mudança mais permanente, você precisa editar /etc/limits.conf ou /etc/security/limits.conf (dependendo da sua distribuição linux) e adicionar as seguintes linhas:

username hard nproc 1000

Substitua username pelo nome de usuário real

Em vez de username, um nome de grupo também pode ser usado se você prefixar com um @ . Se você usa * , seria o padrão para todos os usuários

Exemplos:

myuser hard nproc 1000
@mygroup hard nproc 3000
*    hard nproc 500
    
por 02.03.2013 / 03:18
3

Isso pode ser alterado em /etc/security/limits.conf . Procure por linhas do formulário:

username hard nproc 25
@groupname hard nproc 100

Essas linhas limitam username user a 25 processos e usuários no grupo groupname a 100 processos. Você precisará de permissões de root na máquina.

    
por 02.03.2013 / 03:10
0

Aqui algumas ideias:

Se o seu limits.conf estiver vazio, grep -l ulimit /etc/* $HOME/.* 2> /dev/null para verificar se alguém definiu um ulimit em algum lugar e remova-o.

Depois de editar o limits.conf, tudo o que você precisa fazer é efetuar logout e login novamente para entrar em vigor.

Para ganhar um processo, use exec . Tente por exemplo exec sudo su para se tornar root.

    
por 02.03.2013 / 11:53
0

Deve ser o suficiente para (re) definir o ulimit, sem necessidade de alterar a configuração (muito menos a configuração de todo o sistema em /etc ). E 35 processos devem ser abundantes, algo está errado com o processo de login do OP.

Em uma execução de terminal ps -au , que deve mostrar todos os processos sendo executados como você, verifique a lista (ou poste aqui) para ver se algo estranho está acontecendo.

    
por 02.03.2013 / 13:10
0

Como os outros já mencionados, olham para limits.conf . Quando você faz login no Gnome, no KDE ou em qualquer outra GUI, provavelmente já tem mais de 35 processos sendo executados.

Efetue logout da GUI e alterne para um VT com Ctl Alt F1 , por exemplo, e efetue login sem uma GUI.

Agora, você deve poder analisar /etc/security/limits.conf . Se estiver vazio ou todo comentado, você pode procurar, se houver algo no diretório /etc/security/limits.d , que reduziu o ulimit .

No console, você também deve poder iniciar processos adicionais para editar ou ajustar limits.conf ou arquivos em limits.d .

    
por 02.03.2013 / 17:09
0

Existe mais uma possibilidade de que a configuração para "noproc" não esteja funcionando durante a configuração em /etc/security/limits.conf.

Existe mais um arquivo que sobrescreve sua configuração /etc/security/limits.d/90-nproc.conf.

*          soft    nproc     1024
root       soft    nproc     unlimited

Aqui * config irá sobrescrever o que você definiu no arquivo de configuração anterior. Então, idealmente, você configura sua configuração nesse arquivo.

    
por 15.10.2015 / 12:26