Během připojování k serveru dostávám,
-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
A zkusím také následující příkazy, pak je výsledek stejný.
-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$
Proč to přichází? A jak to mohu vyřešit?
Komentáře
- Vypadá to, že je swap přetížen (/ tmp souborový systém pravděpodobně plný)
- ulimit -a, možná jste narazili na nějaký limit procesu
odpověď
Může to být způsobeno nějakým omezením zdrojů na samotném serveru (nebo) specifickém pro váš uživatelský účet. Limity ve vašem shellu lze zkontrolovat pomocí ulimit -a
. Zkontrolujte, zda ulimit -u
maximální počet uživatelských procesů, pokud jste dosáhli maximálního počtu procesů, fork nedokáže vytvořit žádnou novou a selhává s touto chybou. Může to být také kvůli problému se zdroji paměti / paměti
Odpověď
vidlice: Zdroj dočasně nedostupný
Chyba znamená, že aktuální prostředek prostředí je omezen (limity zkontrolujte pomocí ulimit -a
). Můžete to tedy zkusit v jiném prostředí nebo zvýšit prostředky pomocí příkazu ulimit
, který řídí zdroje dostupné prostředí a zpracovává jej v operačním systému.
Chcete-li zvýšit limity, zkuste spustit:
ulimit -Sn unlimited && ulimit -Sl unlimited
zvýšit měkké limity na tvrdé, nebo:
ulimit -l unlimited ulimit -n 10240
nastavit maximální velikost procesu na neomezenou a maximální počet otevřených souborů na 10240.
Viz: help ulimit
pro více informací.
Aby to bylo trvalé, přidejte výše uvedená nastavení do spouštěcích rc souborů (např. ~/.bashrc
).
Můžete také použít /etc/sysctl.conf
(viz: man sysctl.conf
) ke zvýšení limitů jádra, např.
kern.maxprocperuid=1000 kern.maxproc=2000
Komentáře
- Pokud k této chybě dojde, provede " zkuste " naznačit, že se pokusí opakovat až do res naše zdroje jsou k dispozici?
- @DavidB Nebo že to zkusil znovu, ale selhal.
- kern.maxprocperuid, kern.maxproc, kernel.maxprocperuid a jádro. maxproc na Ubuntu neexistují. Jaká je tam alternativa?
Odpověď
Problém lze vyřešit také pomocí následujících příkazů:
yum install psmisc killall -STOP -u user1 killall -KILL -u user1
Zde user1 je skupina uživatelů, u které byl limit překročen.
Komentáře
- Zabíjení každého jednotlivého procesu patřícího uživateli se zdá být trochu zvednuté. Také příkaz
yum
by pravděpodobně také nemohl rozvětvovat. - Příkaz yum bude spuštěn prostřednictvím uživatele root za předpokladu, že k problému došlo u jiného uživatel než root
- Pokud shell nedokáže rozvětvit
df
, bude mít problémy se spuštěnímsudo
. - BOFH styl. Líbí se mi to!