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
E intento 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é viene esto? ¿Y cómo puedo resolverlo?
Comentarios
- Parece que el intercambio está sobrecargado (el sistema de archivos / tmp posiblemente esté lleno)
- ulimit -a, tal vez alcances algún límite de proceso
Respuesta
Esto podría deberse a algún límite de recursos, ya sea en el servidor mismo (o) específico de su cuenta de usuario. Los límites en su shell se pueden verificar a través de ulimit -a
. Esp, verifique ulimit -u
max procesos de usuario, si ha alcanzado el máximo de procesos, la bifurcación no puede crear ningún proceso nuevo y falla con ese error. Esto también podría deberse a un problema de intercambio / recurso de memoria
Respuesta
fork: recurso temporalmente no disponible
El error significa que el recurso de shell actual es limitado (verifique los límites en ulimit -a
). Por lo tanto, puede intentarlo en otro shell o aumentar los recursos utilizando el comando ulimit
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 estrictos, 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.
Consulte: help ulimit
para más información.
Para que sea 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, por ejemplo,
kern.maxprocperuid=1000 kern.maxproc=2000
Comentarios
- Cuando se produce este error, el " volver a intentar " implica que se intentará repetidamente hasta que res ¿Nuestros archivos están disponibles?
- @DavidB O que lo hizo reintento, pero falló.
- kern.maxprocperuid, kern.maxproc, kernel.maxprocperuid y kernel. maxproc no existe en Ubuntu. ¿Cuál es la alternativa?
Responder
El problema también se puede resolver usando 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
Comentarios
- Matar todos los procesos pertenecientes al usuario parece un poco torpe. Además, ese comando
yum
probablemente tampoco podría bifurcarse. - El comando yum se ejecutará a través del usuario root, asumiendo que el problema ha ocurrido en un usuario que root
- Si el shell no puede bifurcar
df
, también tendría problemas para ejecutarsudo
. - Estilo BOFH. ¡Me gusta!