Terwijl ik verbinding maak met mijn server krijg ik,
-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
En ik probeer ook commandos te volgen, dan is het resultaat hetzelfde.
-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$
Waarom komt dit eraan? En hoe kan ik het oplossen?
Opmerkingen
- Het lijkt erop dat de swap overbelast is (/ tmp-bestandssysteem mogelijk vol)
- ulimit -a, misschien heb je een proceslimiet bereikt
Antwoord
Dit kan te wijten zijn aan een of andere bronlimiet, ofwel op de server zelf (of) specifiek voor uw gebruikersaccount. Limieten in je shell kunnen worden gecontroleerd via ulimit -a
. Controleer in het bijzonder op ulimit -u
max. Gebruikersprocessen, als je max. Processen hebt bereikt, kan fork geen nieuwe maken en mislukt met die fout. Dit kan ook het gevolg zijn van een probleem met swap- / geheugenresources.
Answer
fork: Resource tijdelijk niet beschikbaar
De fout betekent dat de huidige shell-resource beperkt is (controleer de limieten met ulimit -a
). U kunt het dus proberen in een andere shell, of de bronnen vergroten door het ulimit
-commando te gebruiken dat de bronnen controleert die beschikbaar zijn voor de shell en deze verwerkt op het besturingssysteem.
Om de limieten te verhogen, probeer het volgende uit te voeren:
ulimit -Sn unlimited && ulimit -Sl unlimited
om de zachte limieten naar harde limieten te verhogen, of:
ulimit -l unlimited ulimit -n 10240
om de maximale grootte van een proces in te stellen op onbeperkt en het maximale aantal geopende bestanden op 10240.
Zie: help ulimit
voor meer informatie.
Om het blijvend te maken, voegt u de bovenstaande instellingen toe aan uw rc opstartbestanden (bijv. ~/.bashrc
).
Je kunt ook /etc/sysctl.conf
(zie: man sysctl.conf
) gebruiken om de kernellimieten te verhogen, bijv.
kern.maxprocperuid=1000 kern.maxproc=2000
Reacties
- Wanneer deze fout optreedt, geeft de " retry " impliceren dat het herhaaldelijk zal proberen tot res ources beschikbaar komen?
- @DavidB Of dat het deed het opnieuw probeerde, maar mislukte.
- kern.maxprocperuid, kern.maxproc, kernel.maxprocperuid en kernel. maxproc bestaat niet op Ubuntu. Wat is daar het alternatief?
Answer
Het probleem kan ook worden opgelost met de volgende opdrachten:
yum install psmisc killall -STOP -u user1 killall -KILL -u user1
Hier is gebruiker1 de gebruikersgroep waarvoor de limiet is overschreden
Opmerkingen
- Het doden van elk proces dat bij de gebruiker hoort, lijkt een beetje zwaar. Bovendien zou dat
yum
-commando waarschijnlijk ook niet kunnen splitsen. - Het yum-commando zal door de rootgebruiker worden uitgevoerd, ervan uitgaande dat het probleem is opgetreden op een andere gebruiker dan root
- Als de shell
df
niet kan splitsen, zou het problemen hebben omsudo
ook te draaien. - BOFH-stijl. Ik vind het leuk!