取得したサーバーに接続している間、
-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$
なぜこれが来るのですか?そして、どうすれば解決できますか?
これは、サーバー自体(または)ユーザーアカウントに固有のリソース制限が原因である可能性があります。シェルの制限はulimit -a
で確認できます。 Esp ulimit -u
maxユーザープロセスを確認します。maxプロセスに達した場合、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
この問題は、次のコマンドを使用して解決することもできます。
yum install psmisc
killall -STOP -u user1
killall -KILL -u user1
ここでuser1は、制限を超えたユーザーグループです。