fork: retry: Resurs tillfälligt otillgänglig

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öra sudo.
  • BOFH-stil. Jag gillar det!

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *