Mens jeg opretter forbindelse til min server, får jeg,
-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
Og jeg prøver også at følge kommandoer, så er resultatet det samme.
-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$
Hvorfor dette kommer? Og hvordan kan jeg løse det?
Kommentarer
- Ser ud som om swap er overbelastet (/ tmp filsystem muligvis fuld)
- ulimit -a, måske når du en eller anden procesgrænse
Svar
Dette kan enten skyldes en eller anden ressourcebegrænsning på selve serveren (eller) specifikt for din brugerkonto. Grænser i din skal kunne kontrolleres via ulimit -a
. Esp check for ulimit -u
max brugerprocesser, hvis du har nået max processer, kan fork ikke oprette nye og fejle med denne fejl. Dette kan også skyldes problem med bytte / hukommelsesressource
Svar
fork: Ressource er midlertidigt utilgængelig
Fejlen betyder, at den aktuelle shell-ressource er begrænset (tjek grænserne med ulimit -a
). Så du kan enten prøve i en anden skal eller øge ressourcerne ved hjælp af ulimit
kommando, der styrer ressourcerne til rådighed for skallen og processer, den opretter på operativsystemet.
For at øge grænserne, prøv at køre:
ulimit -Sn unlimited && ulimit -Sl unlimited
for at hæve de bløde grænser til hårde, eller:
ulimit -l unlimited ulimit -n 10240
for at indstille den maksimale størrelse en proces til ubegrænset og det maksimale antal åbne filer til 10240.
Se: help ulimit
for flere oplysninger.
For at gøre det vedholdende skal du tilføje ovenstående indstillinger til dine start rc filer (f.eks. ~/.bashrc
).
Du kan også bruge /etc/sysctl.conf
(se: man sysctl.conf
) til at øge kernelgrænserne, f.eks.
kern.maxprocperuid=1000 kern.maxproc=2000
Kommentarer
- Når denne fejl opstår, sker " prøv igen " antyde, at det gentagne gange vil forsøge indtil res ources bliver tilgængelige?
- @DavidB Eller at det forsøgte igen, men det mislykkedes.
- kern.maxprocperuid, kern.maxproc, kernel.maxprocperuid og kernel. maxproc findes ikke på Ubuntu. Hvad er alternativet der?
Svar
Problemet kan også løses ved hjælp af følgende kommandoer:
yum install psmisc killall -STOP -u user1 killall -KILL -u user1
Her er bruger1 den brugergruppe, for hvilken grænsen er overskredet
Kommentarer
- At dræbe hver eneste proces, der tilhører brugeren, virker lidt hævet. Også, at
yum
-kommandoen sandsynligvis ikke ville være i stand til at forkaste heller. - Kommandoen yum køres gennem rodbrugeren, forudsat at problemet er opstået på en anden bruger end root
- Hvis skallen ikke kan forkaste
df
, vil det også have problemer med at køresudo
. - BOFH-stil. Jeg kan lide det!