fork: retry: Recurso temporariamente indisponível

Enquanto estou me conectando ao meu servidor, recebo

-bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: Resource temporarily unavailable 

E tento seguir os comandos também, então o resultado é o mesmo.

-bash-4.1$ df -h -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: Resource temporarily unavailable -bash-4.1$ -bash-4.1$ ls -lrth -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: Interrupted system call -bash-4.1$ -bash-4.1$ ps -aef | grep `pwd` -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: Resource temporarily unavailable -bash-4.1$ 

Por que isso vem? E como posso resolver isso?

Comentários

  • Parece que o swap está sobrecarregado (sistema de arquivos / tmp possivelmente cheio)
  • ulimit -a, talvez você tenha atingido algum limite de processo

Resposta

Isso pode ser devido a algum limite de recursos, no próprio servidor (ou) específico para sua conta de usuário. Os limites em seu shell podem ser verificados via ulimit -a. Esp check for ulimit -u processos máximos do usuário, se você alcançou processos máximos, fork é incapaz de criar qualquer novo e falhando com aquele erro. Isso também pode ser devido a um problema de troca / recurso de memória

Resposta

fork: Resource temporariamente indisponível

O erro significa que o recurso shell atual é limitado (verifique os limites por ulimit -a). Portanto, você pode tentar em outro shell ou aumentar os recursos usando o comando ulimit que controla os recursos disponíveis para o shell e os processos que ele cria no sistema operacional.

Para aumentar os limites, tente executar:

ulimit -Sn unlimited && ulimit -Sl unlimited 

para aumentar os limites suaves para um rígido ou:

ulimit -l unlimited ulimit -n 10240 

para definir o tamanho máximo de um processo como ilimitado e o número máximo de arquivos abertos como 10240.

Veja: help ulimit para mais informações.

Para torná-lo persistente, adicione as configurações acima aos arquivos rc de inicialização (por exemplo, ~/.bashrc).


Você também pode usar /etc/sysctl.conf (consulte: man sysctl.conf) para aumentar os limites do kernel, por exemplo,

kern.maxprocperuid=1000 kern.maxproc=2000 

Comentários

  • Quando esse erro ocorre, o " repetir " implica que tentará repetidamente até res ources tornaram-se disponíveis?
  • @DavidB Ou que tentou tentar novamente, mas falhou.
  • kern.maxprocperuid, kern.maxproc, kernel.maxprocperuid e kernel. maxproc não existe no Ubuntu. Qual é a alternativa aí?

Resposta

O problema também pode ser resolvido usando os seguintes comandos:

yum install psmisc killall -STOP -u user1 killall -KILL -u user1 

Aqui, user1 é o grupo de usuários para o qual o limite foi excedido

Comentários

  • Matar todos os processos pertencentes ao usuário parece um pouco pesado. Além disso, esse comando yum provavelmente não seria capaz de fazer bifurcação.
  • O comando yum será executado através do usuário root, assumindo que o problema ocorreu em um outro usuário do que root
  • Se o shell falhar em bifurcar df, ele teria problemas para executar sudo também. >
  • estilo BOFH. Eu gosto!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *