fork:再試行:リソースが一時的に利用できません

サーバーに接続しているときに取得します

-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スタイル。私はそれが好きです!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です