Medan jag ansluter till min server får jag,
-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
Och jag försöker att följa kommandon också, då blir resultatet detsamma.
-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$
Varför detta kommer? Och hur kan jag lösa det?
Kommentarer
- Ser ut som att swap är överbelastat (/ tmp filsystem möjligen fullt)
- ulimit -a, kanske du nått någon processgräns
Svar
Detta kan bero på någon resursgräns, antingen på själva servern (eller) specifikt för ditt användarkonto. Gränser i ditt skal kan kontrolleras via ulimit -a
. Esp-kontroll för ulimit -u
max användarprocesser, om du har nått maxprocesser, kan gaffel inte skapa något nytt och misslyckas med det felet. Detta kan också bero på byt- / minnesresursproblem
Svar
fork: Resurs tillfälligt otillgänglig
Felet betyder att den aktuella skalresursen är begränsad (kontrollera gränserna med ulimit -a
). Så du kan antingen försöka i ett annat skal eller öka resurserna med kommandot ulimit
som kontrollerar de resurser som är tillgängliga för skalet och processer det skapar i operativsystemet.
För att öka gränserna, försök att köra:
ulimit -Sn unlimited && ulimit -Sl unlimited
för att höja de mjuka gränserna till hårda, eller:
ulimit -l unlimited ulimit -n 10240
för att ställa in den maximala storleken på en process till obegränsad och det maximala antalet öppna filer till 10240.
Se: help ulimit
för mer information.
För att göra det beständigt, lägg till ovanstående inställningar i dina start rc filer (t.ex. ~/.bashrc
).
Du kan också använda /etc/sysctl.conf
(se: man sysctl.conf
) för att öka kärngränserna, t.ex.
kern.maxprocperuid=1000 kern.maxproc=2000
Kommentarer
- När detta fel inträffar, gör " försök igen " antyder att det kommer att försöka upprepade gånger tills res ources blir tillgängliga?
- @DavidB Eller att det försökte om, men misslyckades.
- kern.maxprocperuid, kern.maxproc, kernel.maxprocperuid och kernel. maxproc finns inte på Ubuntu. Vad är alternativet där?
Svar
Problemet kan också lösas med följande kommandon:
yum install psmisc killall -STOP -u user1 killall -KILL -u user1
Här är user1 användargruppen för vilken gränsen har överskridits
Kommentarer
- Att döda varje enskild process som tillhör användaren verkar lite häftig. Att kommandot
yum
förmodligen inte heller skulle kunna gaffla heller. - Kommandot yum körs genom root-användare, förutsatt att problemet har uppstått på en annan användare än root
- Om skalet inte går att gaffla
df
skulle det ha problem med att körasudo
. - BOFH-stil. Jag gillar det!