fork: retry: recurso temporalmente no disponible


31

Mientras me conecto a mi servidor obtengo,

-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

Y trato de seguir los comandos también, entonces el resultado es el mismo.

-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 qué esta venida? ¿Y cómo puedo resolverlo?


2
Parece que el intercambio está sobrecargado (el sistema de archivos / tmp posiblemente está lleno)
Lambert

2
ulimit -a, tal vez llegaste a algún límite de proceso
c4f4t0r

Respuestas:


21

Esto podría deberse a algún límite de recursos, ya sea en el servidor (o) específico de su cuenta de usuario. Los límites en su shell se pueden verificar a través de ulimit -a. Esp comprueba ulimit -usi hay procesos de usuario máximos, si has alcanzado procesos máximos, fork no puede crear ningún nuevo y falla con ese error. Esto también podría deberse a un problema de intercambio / memoria de recursos


9

fork: recurso temporalmente no disponible

El error significa que el recurso de shell actual es limitado (verifique los límites ulimit -a). Por lo tanto, puede intentarlo en otro shell o aumentar los recursos mediante el ulimitcomando que controla los recursos disponibles para el shell y los procesos que crea en el sistema operativo.

Para aumentar los límites, intente ejecutar:

ulimit -Sn unlimited && ulimit -Sl unlimited

para elevar los límites suaves a uno duro, o:

ulimit -l unlimited
ulimit -n 10240 

para establecer el tamaño máximo de un proceso en ilimitado y el número máximo de archivos abiertos en 10240.

Ver: help ulimitpara más información.

Para hacerlo persistente, agregue la configuración anterior en sus archivos rc de inicio (por ejemplo ~/.bashrc).


También puede usar /etc/sysctl.conf(ver: man sysctl.conf) para aumentar los límites del kernel, p. Ej.

kern.maxprocperuid=1000
kern.maxproc=2000

1
Cuando se produce este error, ¿el "reintento" implica que se intentará repetidamente hasta que los recursos estén disponibles?
DaveTheMinion

@DavidB O que hizo reintento, pero fracasó.
Kusalananda

@Kusalananda Ok, gracias.
DaveTheMinion

0

El problema también se puede resolver con los siguientes comandos:

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

Aquí user1 es el grupo de usuarios para el que se ha excedido el límite


Matar todos los procesos que pertenecen al usuario parece un poco pesado. Además, ese yumcomando probablemente tampoco podría bifurcarse.
Kusalananda

El comando yum se ejecutará a través del usuario root, suponiendo que el problema haya ocurrido en un usuario diferente al root
Arun

Si el shell no se bifurca, dftambién tendría problemas para ejecutarse sudo.
Kusalananda
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.