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 executarsudo
também. > - estilo BOFH. Eu gosto!