Mens jeg kobler til serveren min 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 å følge kommandoer også, så blir 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 ut som om swap er overbelastet (/ tmp filsystem muligens full)
- ulimit -a, kanskje du har nådd en prosessgrense
Svar
Dette kan skyldes noen ressursgrenser, enten på selve serveren (eller) spesifikk for brukerkontoen din. Grenser i skallet ditt kan kontrolleres via ulimit -a
. Esp sjekk for ulimit -u
maks brukerprosesser, hvis du har nådd maksimale prosesser, kan fork ikke opprette noe nytt og mislykkes med den feilen. Dette kan også skyldes bytte / minne ressursproblem
Svar
gaffel: Ressurs midlertidig utilgjengelig
Feilen betyr at den gjeldende skallressursen er begrenset (sjekk grensene med ulimit -a
). Så du kan enten prøve i et annet skall, eller øke ressursene ved å bruke ulimit
-kommandoen som kontrollerer ressursene som er tilgjengelige for skallet og prosesser det oppretter på operativsystemet.
For å øke grensene, prøv å løpe:
ulimit -Sn unlimited && ulimit -Sl unlimited
for å heve de myke grensene til harde, eller:
ulimit -l unlimited ulimit -n 10240
for å angi maksimal størrelse en prosess til ubegrenset og maksimalt antall åpne filer til 10240.
Se: help ulimit
for mer informasjon.
For å gjøre det vedvarende, legg til innstillingene ovenfor i oppstarts rc filer (f.eks. ~/.bashrc
).
Du kan også bruke /etc/sysctl.conf
(se: man sysctl.conf
) for å øke kjernegrensene, f.eks.
kern.maxprocperuid=1000 kern.maxproc=2000
Kommentarer
- Når denne feilen oppstår, gjør " prøv på nytt " anty at den vil forsøke gjentatte ganger til res ources blir tilgjengelig?
- @DavidB Eller at det prøvde på nytt, men mislyktes.
- kern.maxprocperuid, kern.maxproc, kernel.maxprocperuid og kernel. maxproc eksisterer ikke på Ubuntu. Hva er alternativet der?
Svar
Problemet kan også løses ved hjelp av følgende kommandoer:
yum install psmisc killall -STOP -u user1 killall -KILL -u user1
Her er bruker1 brukergruppen som grensen er overskredet for
Kommentarer
- Å drepe hver eneste prosess som tilhører brukeren virker litt heftig. Også at kommandoen
yum
sannsynligvis ikke vil være i stand til å forkaste heller. - Kommandoen yum kjøres gjennom rotbrukeren, forutsatt at problemet har oppstått på en annen bruker enn root
- Hvis skallet ikke klarer å forkaste
df
, vil det også ha problemer med å kjøresudo
. - BOFH-stil. Jeg liker det!