サーバーに接続しているときに取得します
-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$ 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$
なぜこれが来るのですか?どうすれば解決できますか?
コメント
- スワップが過負荷になっているようです(/ tmpファイルシステムがいっぱいになっている可能性があります)
- ulimit -a、プロセスの制限に達した可能性があります
回答
これは、リソースの制限が原因である可能性もあります。サーバー自体(または)ユーザーアカウントに固有の。シェルの制限は、ulimit -a
で確認できます。 ulimit -u
の最大ユーザープロセスのEspチェック。最大プロセスに達した場合、forkは新しいプロセスを作成できず、そのエラーで失敗します。これは、スワップ/メモリリソースの問題が原因である可能性もあります
回答
fork:リソースが一時的に利用できません
エラーは、現在のシェルリソースが制限されていることを意味します(ulimit -a
)。したがって、別のシェルで試すか、シェルで使用可能なリソースとオペレーティングシステムで作成されるプロセスを制御するulimit
コマンドを使用してリソースを増やすことができます。
制限を増やすには、次のコマンドを実行してみてください:
ulimit -Sn unlimited && ulimit -Sl unlimited
ソフト制限をハード制限に上げる、または:
ulimit -l unlimited ulimit -n 10240
プロセスの最大サイズを無制限に設定し、開いているファイルの最大数を10240に設定します。
参照:help ulimit
詳細情報。
永続的にするには、上記の設定をスタートアップの rc ファイルに追加します(例:~/.bashrc
)。
/etc/sysctl.conf
(man sysctl.conf
を参照)を使用して、カーネル制限を増やすこともできます。例:
kern.maxprocperuid=1000 kern.maxproc=2000
コメント
- このエラーが発生した場合、" try "は、resまで繰り返し試行されることを意味しますourcesが利用可能になりますか?
- @DavidBまたは、再試行したが失敗した 。
- kern.maxprocperuid、kern.maxproc、kernel.maxprocperuid、kernel。 maxprocはUbuntuには存在しません。そこでの代替案は何ですか?
回答
この問題は、次のコマンドを使用して解決することもできます。
yum install psmisc killall -STOP -u user1 killall -KILL -u user1
ここで、user1は、制限を超えたユーザーグループです
コメント
- ユーザーに属するすべてのプロセスを強制終了することは、少し手間がかかるようです。また、その
yum
コマンドもおそらくフォークできません。 - 問題が別のユーザーで発生したと仮定すると、yumコマンドはrootユーザーを介して実行されます。 rootよりもユーザー
- シェルが
df
のフォークに失敗した場合、sudo
の実行にも問題が発生します。 - BOFHスタイル。私はそれが好きです!